From 465ea04df282db1dff8210f95fb5b52241dfc85c Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 13:45:10 -0400 Subject: [PATCH 01/63] Create auto-tune.py --- groundstation/auto-tune.py | 81 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 groundstation/auto-tune.py diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py new file mode 100644 index 00000000..435d6523 --- /dev/null +++ b/groundstation/auto-tune.py @@ -0,0 +1,81 @@ +from rtlsdr import RtlSdr +import numpy as np +import matplotlib.pyplot as plt + +# Create a sample signal (sum of two sine waves) +sampling_rate = 1024e3 # 250e3 # Hz +duration = 65536/sampling_rate # 1 # seconds +# t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) +t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) +# frequency1 = 50 # Hz +# frequency2 = 120 # Hz +# signal = 0.7 * np.sin(2 * np.pi * frequency1 * t) + np.sin(2 * np.pi * frequency2 * t) + +sdr = RtlSdr() + +# configure device +sdr.sample_rate = sampling_rate # 250e3 # 2.4e6 +center_frequency = 434.8e6 +sdr.center_freq = center_frequency +sdr.gain = 4 +sdr.direct_sampling = False + +# signal = sdr.read_samples(64*1024) #256 +signal = sdr.read_samples(duration*sampling_rate) #256 + +print(f"Center frequency is {center_frequency}") + +sdr.close() + +# Compute the FFT +fft_result = np.fft.fft(signal) + +# Calculate the frequencies corresponding to the FFT output +n = len(signal) +frequencies = np.fft.fftfreq(n, d=1/sampling_rate) + +# Take the absolute value for amplitude spectrum and consider only the positive frequencies +positive_frequencies_indices = np.where(frequencies >= 0) +positive_frequencies = frequencies[positive_frequencies_indices] +amplitude_spectrum = 2/n * np.abs(fft_result[positive_frequencies_indices]) # Normalize for amplitude + +# Plotting the results +plt.figure(figsize=(12, 6)) + +plt.subplot(1, 2, 1) +plt.plot(t, signal) +plt.title('Time Domain Signal') +plt.xlabel('Time (s)') +plt.ylabel('Amplitude') + +plt.subplot(1, 2, 2) +plt.stem(positive_frequencies, amplitude_spectrum, markerfmt=" ", basefmt="-b") +plt.title('Frequency Domain (FFT)') +plt.xlabel('Frequency (Hz)') +plt.ylabel('Amplitude') +plt.grid(True) + +plt.tight_layout() +plt.show() + +print(amplitude_spectrum) +x = amplitude_spectrum +print(x) +min_value = min(x) +max_value = max(x) + +#freq_min = np.argmax(min_value) +print(np.argmax(x)) +print(np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) +print(sampling_rate) +print(center_frequency) + +offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) +freq_max = center_frequency + offset + +print(f"The maximum signal is {max_value} at frequency {freq_max}") +#print(f"The minimum signal is {min_value} at frequency {freq_min}") + +print(min_value) +print(max_value) + From 873f789b426b0d863b59f83d058e8e8e09282cc6 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 13:48:37 -0400 Subject: [PATCH 02/63] Update auto-tune.py add .real --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 435d6523..d83e33cc 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -21,7 +21,7 @@ sdr.gain = 4 sdr.direct_sampling = False # signal = sdr.read_samples(64*1024) #256 -signal = sdr.read_samples(duration*sampling_rate) #256 +signal = sdr.read_samples(duration*sampling_rate).real #256 print(f"Center frequency is {center_frequency}") From a0dbfdc646495a23c14639dee7477e47e9e9ed70 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:06:42 -0400 Subject: [PATCH 03/63] Update auto-tune.py add parameters --- groundstation/auto-tune.py | 73 +++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 29 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index d83e33cc..b473e96e 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -2,6 +2,20 @@ from rtlsdr import RtlSdr import numpy as np import matplotlib.pyplot as plt +if __name__ == "__main__": + graph = 'n' + center_frequency = 434.9e6 + if (len(sys.argv)) > 0: + print("There are arguments!") + center_frequency = float(sys.argv[1]) + if (center_frequency == 0): + center_frequency = 434.9e6 + if (len(sys.argv)) > 1: + print("There are more arguments") + if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): + graph = 'y' + + # Create a sample signal (sum of two sine waves) sampling_rate = 1024e3 # 250e3 # Hz duration = 65536/sampling_rate # 1 # seconds @@ -15,7 +29,7 @@ sdr = RtlSdr() # configure device sdr.sample_rate = sampling_rate # 250e3 # 2.4e6 -center_frequency = 434.8e6 +#center_frequency = 434.8e6 sdr.center_freq = center_frequency sdr.gain = 4 sdr.direct_sampling = False @@ -39,43 +53,44 @@ positive_frequencies_indices = np.where(frequencies >= 0) positive_frequencies = frequencies[positive_frequencies_indices] amplitude_spectrum = 2/n * np.abs(fft_result[positive_frequencies_indices]) # Normalize for amplitude -# Plotting the results -plt.figure(figsize=(12, 6)) - -plt.subplot(1, 2, 1) -plt.plot(t, signal) -plt.title('Time Domain Signal') -plt.xlabel('Time (s)') -plt.ylabel('Amplitude') - -plt.subplot(1, 2, 2) -plt.stem(positive_frequencies, amplitude_spectrum, markerfmt=" ", basefmt="-b") -plt.title('Frequency Domain (FFT)') -plt.xlabel('Frequency (Hz)') -plt.ylabel('Amplitude') -plt.grid(True) - -plt.tight_layout() -plt.show() - -print(amplitude_spectrum) +if (graph == 'y'): + # Plotting the results + plt.figure(figsize=(12, 6)) + + plt.subplot(1, 2, 1) + plt.plot(t, signal) + plt.title('Time Domain Signal') + plt.xlabel('Time (s)') + plt.ylabel('Amplitude') + + plt.subplot(1, 2, 2) + plt.stem(positive_frequencies, amplitude_spectrum, markerfmt=" ", basefmt="-b") + plt.title('Frequency Domain (FFT)') + plt.xlabel('Frequency (Hz)') + plt.ylabel('Amplitude') + plt.grid(True) + + plt.tight_layout() + plt.show() + +# print(amplitude_spectrum) x = amplitude_spectrum -print(x) +# print(x) min_value = min(x) max_value = max(x) #freq_min = np.argmax(min_value) -print(np.argmax(x)) -print(np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) -print(sampling_rate) -print(center_frequency) +# print(np.argmax(x)) +# print(np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) +# print(sampling_rate) +# print(center_frequency) offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) freq_max = center_frequency + offset -print(f"The maximum signal is {max_value} at frequency {freq_max}") +print(f" {freq_max} {max_value}") #print(f"The minimum signal is {min_value} at frequency {freq_min}") -print(min_value) -print(max_value) +#print(min_value) +#print(max_value) From 20090e5cf96337789ec848bc0f61e07f5c2320b4 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:08:06 -0400 Subject: [PATCH 04/63] Update auto-tune.py fix name --- groundstation/auto-tune.py | 151 ++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 78 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index b473e96e..0684731f 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -16,81 +16,76 @@ if __name__ == "__main__": graph = 'y' -# Create a sample signal (sum of two sine waves) -sampling_rate = 1024e3 # 250e3 # Hz -duration = 65536/sampling_rate # 1 # seconds -# t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) -t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) -# frequency1 = 50 # Hz -# frequency2 = 120 # Hz -# signal = 0.7 * np.sin(2 * np.pi * frequency1 * t) + np.sin(2 * np.pi * frequency2 * t) - -sdr = RtlSdr() - -# configure device -sdr.sample_rate = sampling_rate # 250e3 # 2.4e6 -#center_frequency = 434.8e6 -sdr.center_freq = center_frequency -sdr.gain = 4 -sdr.direct_sampling = False - -# signal = sdr.read_samples(64*1024) #256 -signal = sdr.read_samples(duration*sampling_rate).real #256 - -print(f"Center frequency is {center_frequency}") - -sdr.close() - -# Compute the FFT -fft_result = np.fft.fft(signal) - -# Calculate the frequencies corresponding to the FFT output -n = len(signal) -frequencies = np.fft.fftfreq(n, d=1/sampling_rate) - -# Take the absolute value for amplitude spectrum and consider only the positive frequencies -positive_frequencies_indices = np.where(frequencies >= 0) -positive_frequencies = frequencies[positive_frequencies_indices] -amplitude_spectrum = 2/n * np.abs(fft_result[positive_frequencies_indices]) # Normalize for amplitude - -if (graph == 'y'): - # Plotting the results - plt.figure(figsize=(12, 6)) - - plt.subplot(1, 2, 1) - plt.plot(t, signal) - plt.title('Time Domain Signal') - plt.xlabel('Time (s)') - plt.ylabel('Amplitude') - - plt.subplot(1, 2, 2) - plt.stem(positive_frequencies, amplitude_spectrum, markerfmt=" ", basefmt="-b") - plt.title('Frequency Domain (FFT)') - plt.xlabel('Frequency (Hz)') - plt.ylabel('Amplitude') - plt.grid(True) - - plt.tight_layout() - plt.show() - -# print(amplitude_spectrum) -x = amplitude_spectrum -# print(x) -min_value = min(x) -max_value = max(x) - -#freq_min = np.argmax(min_value) -# print(np.argmax(x)) -# print(np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) -# print(sampling_rate) -# print(center_frequency) - -offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) -freq_max = center_frequency + offset - -print(f" {freq_max} {max_value}") -#print(f"The minimum signal is {min_value} at frequency {freq_min}") - -#print(min_value) -#print(max_value) - + sampling_rate = 1024e3 # 250e3 # Hz + duration = 65536/sampling_rate # 1 # seconds + t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) + + sdr = RtlSdr() + + # configure device + sdr.sample_rate = sampling_rate # 250e3 # 2.4e6 + #center_frequency = 434.8e6 + sdr.center_freq = center_frequency + sdr.gain = 4 + sdr.direct_sampling = False + + # signal = sdr.read_samples(64*1024) #256 + signal = sdr.read_samples(duration*sampling_rate).real #256 + + print(f"Center frequency is {center_frequency}") + + sdr.close() + + # Compute the FFT + fft_result = np.fft.fft(signal) + + # Calculate the frequencies corresponding to the FFT output + n = len(signal) + frequencies = np.fft.fftfreq(n, d=1/sampling_rate) + + # Take the absolute value for amplitude spectrum and consider only the positive frequencies + positive_frequencies_indices = np.where(frequencies >= 0) + positive_frequencies = frequencies[positive_frequencies_indices] + amplitude_spectrum = 2/n * np.abs(fft_result[positive_frequencies_indices]) # Normalize for amplitude + + if (graph == 'y'): + # Plotting the results + plt.figure(figsize=(12, 6)) + + plt.subplot(1, 2, 1) + plt.plot(t, signal) + plt.title('Time Domain Signal') + plt.xlabel('Time (s)') + plt.ylabel('Amplitude') + + plt.subplot(1, 2, 2) + plt.stem(positive_frequencies, amplitude_spectrum, markerfmt=" ", basefmt="-b") + plt.title('Frequency Domain (FFT)') + plt.xlabel('Frequency (Hz)') + plt.ylabel('Amplitude') + plt.grid(True) + + plt.tight_layout() + plt.show() + + # print(amplitude_spectrum) + x = amplitude_spectrum + # print(x) + min_value = min(x) + max_value = max(x) + + #freq_min = np.argmax(min_value) + # print(np.argmax(x)) + # print(np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) + # print(sampling_rate) + # print(center_frequency) + + offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) + freq_max = center_frequency + offset + + print(f" {freq_max} {max_value}") + #print(f"The minimum signal is {min_value} at frequency {freq_min}") + + #print(min_value) + #print(max_value) + From 5b70b566d5352e8041b2f02a034a912c9d70927e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:09:36 -0400 Subject: [PATCH 05/63] Update auto-tune.py fix indentation --- groundstation/auto-tune.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 0684731f..71adc956 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -4,18 +4,17 @@ import matplotlib.pyplot as plt if __name__ == "__main__": graph = 'n' - center_frequency = 434.9e6 - if (len(sys.argv)) > 0: - print("There are arguments!") - center_frequency = float(sys.argv[1]) - if (center_frequency == 0): - center_frequency = 434.9e6 - if (len(sys.argv)) > 1: - print("There are more arguments") - if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): - graph = 'y' + center_frequency = 434.9e6 + if (len(sys.argv)) > 0: + print("There are arguments!") + center_frequency = float(sys.argv[1]) + if (center_frequency == 0): + center_frequency = 434.9e6 + if (len(sys.argv)) > 1: + print("There are more arguments") + if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): + graph = 'y' - sampling_rate = 1024e3 # 250e3 # Hz duration = 65536/sampling_rate # 1 # seconds t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) From bf98365e686418f1b006f114dd811a64da35a264 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:10:23 -0400 Subject: [PATCH 06/63] Update auto-tune.py more indents --- groundstation/auto-tune.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 71adc956..57d9b509 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -7,13 +7,13 @@ if __name__ == "__main__": center_frequency = 434.9e6 if (len(sys.argv)) > 0: print("There are arguments!") - center_frequency = float(sys.argv[1]) - if (center_frequency == 0): - center_frequency = 434.9e6 - if (len(sys.argv)) > 1: - print("There are more arguments") - if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): - graph = 'y' + center_frequency = float(sys.argv[1]) + if (center_frequency == 0): + center_frequency = 434.9e6 + if (len(sys.argv)) > 1: + print("There are more arguments") + if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): + graph = 'y' sampling_rate = 1024e3 # 250e3 # Hz duration = 65536/sampling_rate # 1 # seconds From 93265df16a0960dbd0a1b57ec72c57de7e3e3b3e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:10:59 -0400 Subject: [PATCH 07/63] Update auto-tune.py more indent --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 57d9b509..90a1b14e 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -13,7 +13,7 @@ if __name__ == "__main__": if (len(sys.argv)) > 1: print("There are more arguments") if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): - graph = 'y' + graph = 'y' sampling_rate = 1024e3 # 250e3 # Hz duration = 65536/sampling_rate # 1 # seconds From a29525c8cfb874fc43ce994352b229760a5aac00 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:11:31 -0400 Subject: [PATCH 08/63] Update auto-tune.py add sys --- groundstation/auto-tune.py | 1 + 1 file changed, 1 insertion(+) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 90a1b14e..2f071ea1 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -1,6 +1,7 @@ from rtlsdr import RtlSdr import numpy as np import matplotlib.pyplot as plt +import sys if __name__ == "__main__": graph = 'n' From ff9d9754b5800537ba6f578efd0073e2d7227ac4 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:13:21 -0400 Subject: [PATCH 09/63] Update auto-tune.py add 200k offset --- groundstation/auto-tune.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 2f071ea1..df982d1b 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -5,12 +5,12 @@ import sys if __name__ == "__main__": graph = 'n' - center_frequency = 434.9e6 + center_frequency = 434.7e6 if (len(sys.argv)) > 0: print("There are arguments!") - center_frequency = float(sys.argv[1]) + center_frequency = float(sys.argv[1]) - 200e6 if (center_frequency == 0): - center_frequency = 434.9e6 + center_frequency = 434.7e6 if (len(sys.argv)) > 1: print("There are more arguments") if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): From e219ab42850d490884b10a5684f6dcf10a02eb6e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:14:01 -0400 Subject: [PATCH 10/63] Update auto-tune.py fix 200k --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index df982d1b..82883702 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -8,7 +8,7 @@ if __name__ == "__main__": center_frequency = 434.7e6 if (len(sys.argv)) > 0: print("There are arguments!") - center_frequency = float(sys.argv[1]) - 200e6 + center_frequency = float(sys.argv[1]) - 200e3 if (center_frequency == 0): center_frequency = 434.7e6 if (len(sys.argv)) > 1: From f2c44413a6f27eb34b8363e87af4745330282eba Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:16:06 -0400 Subject: [PATCH 11/63] Update auto-tune.py only print results --- groundstation/auto-tune.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 82883702..4ed89696 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -7,12 +7,12 @@ if __name__ == "__main__": graph = 'n' center_frequency = 434.7e6 if (len(sys.argv)) > 0: - print("There are arguments!") +# print("There are arguments!") center_frequency = float(sys.argv[1]) - 200e3 if (center_frequency == 0): center_frequency = 434.7e6 if (len(sys.argv)) > 1: - print("There are more arguments") +# print("There are more arguments") if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): graph = 'y' @@ -32,7 +32,7 @@ if __name__ == "__main__": # signal = sdr.read_samples(64*1024) #256 signal = sdr.read_samples(duration*sampling_rate).real #256 - print(f"Center frequency is {center_frequency}") +# print(f"Center frequency is {center_frequency}") sdr.close() From 54466634cfd07853d2027fce8d41c9fea06eba92 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:18:33 -0400 Subject: [PATCH 12/63] Update auto-tune.py format output --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 4ed89696..1cb62950 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -83,7 +83,7 @@ if __name__ == "__main__": offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) freq_max = center_frequency + offset - print(f" {freq_max} {max_value}") + print(f" {:.0f} {.2f}".format(freq_max, max_value) #print(f"The minimum signal is {min_value} at frequency {freq_min}") #print(min_value) From 20c2c53a734fbd6f364e87207296c8780af110ef Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:20:30 -0400 Subject: [PATCH 13/63] Update auto-tune.py fix format --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 1cb62950..0e909a24 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -83,7 +83,7 @@ if __name__ == "__main__": offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) freq_max = center_frequency + offset - print(f" {:.0f} {.2f}".format(freq_max, max_value) + print(f" {freq_max:.0f} {max_value:.2f}") #print(f"The minimum signal is {min_value} at frequency {freq_min}") #print(min_value) From 3d8b5a05672ef3985a23e7aff7522c091573fe17 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 14:42:50 -0400 Subject: [PATCH 14/63] Update sstv_decode_prompt.sh add autotune --- groundstation/sstv_decode_prompt.sh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index dab0f18a..86011979 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -121,8 +121,25 @@ setsid qsstv & sleep 5 -#sudo systemctl restart cubesatsim +python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt + +threshold="0.1" +confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) +echo "Auto tune confidence: " +echo $confidence +if [ "$confidence" .lt "$threshold" ]; then + + sleep 10 + python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt + +fi +frequency=$(awk '{print $1}' auto-tune.txt) + +echo "Auto tune frequency: " +echo $frequency + +#sudo systemctl restart cubesatsim value=`aplay -l | grep "Loopback"` echo "$value" > /dev/null From 06bc2b3db585bb6a2d563450cd95823d41a7d088 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 15:57:11 -0400 Subject: [PATCH 15/63] Update sstv_decode_prompt.sh fix -lt --- groundstation/sstv_decode_prompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 86011979..b9f8d3d3 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -127,7 +127,7 @@ threshold="0.1" confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence: " echo $confidence -if [ "$confidence" .lt "$threshold" ]; then +if [ "$confidence" -lt "$threshold" ]; then sleep 10 From 844a077daa12430a35bfdb107341784497c2bdb9 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 15:59:23 -0400 Subject: [PATCH 16/63] Update auto-tune.py change max value to integer --- groundstation/auto-tune.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 0e909a24..b3a45c8c 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -72,7 +72,7 @@ if __name__ == "__main__": x = amplitude_spectrum # print(x) min_value = min(x) - max_value = max(x) + max_value = max(x) * 10 #freq_min = np.argmax(min_value) # print(np.argmax(x)) @@ -83,7 +83,7 @@ if __name__ == "__main__": offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) freq_max = center_frequency + offset - print(f" {freq_max:.0f} {max_value:.2f}") + print(f" {freq_max:.0f} {max_value:.0f}") #print(f"The minimum signal is {min_value} at frequency {freq_min}") #print(min_value) From 082d8de58911cefc51b351a9580b9a4bae29bdc6 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 15:59:59 -0400 Subject: [PATCH 17/63] Update sstv_decode_prompt.sh integer threshold --- groundstation/sstv_decode_prompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index b9f8d3d3..f79fa7e8 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -123,7 +123,7 @@ sleep 5 python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt -threshold="0.1" +threshold="1" confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence: " echo $confidence From 732d887dcbdedd44589a558eb76d0951b72ffee1 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 16:11:21 -0400 Subject: [PATCH 18/63] Update auto-tune.py change gain to 29 --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index b3a45c8c..a83d4cd3 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -26,7 +26,7 @@ if __name__ == "__main__": sdr.sample_rate = sampling_rate # 250e3 # 2.4e6 #center_frequency = 434.8e6 sdr.center_freq = center_frequency - sdr.gain = 4 + sdr.gain = 29 sdr.direct_sampling = False # signal = sdr.read_samples(64*1024) #256 From 8a1382f3defc523e34c22d0780fdacb1ab990938 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 16:14:25 -0400 Subject: [PATCH 19/63] Update auto-tune.py add 4k offset --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index a83d4cd3..7c508163 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -81,7 +81,7 @@ if __name__ == "__main__": # print(center_frequency) offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) - freq_max = center_frequency + offset + freq_max = center_frequency + offset + 4000 print(f" {freq_max:.0f} {max_value:.0f}") #print(f"The minimum signal is {min_value} at frequency {freq_min}") From cd91412ee110d68026fc89251e391a5663d198be Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 22:47:40 -0400 Subject: [PATCH 20/63] Update auto-tune.py scale by 100 --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 7c508163..5efc2123 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -72,7 +72,7 @@ if __name__ == "__main__": x = amplitude_spectrum # print(x) min_value = min(x) - max_value = max(x) * 10 + max_value = max(x) * 100 #freq_min = np.argmax(min_value) # print(np.argmax(x)) From 7b3b54f4d8bd5f20ee7f7e533946c45ef88f7133 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 22:54:47 -0400 Subject: [PATCH 21/63] Update sstv_decode_prompt.sh cat auto-tune.txt --- groundstation/sstv_decode_prompt.sh | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index f79fa7e8..0faedca8 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -122,18 +122,23 @@ setsid qsstv & sleep 5 python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt - -threshold="1" +echo "auto-tune.txt" +cat /home/pi/CubeSatSim/groundstation/auto-tune.txt +threshold="3" confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence: " echo $confidence -if [ "$confidence" -lt "$threshold" ]; then +if [ "$confidence" -lt "$threshold" ]; then sleep 10 - python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt - + echo "auto-tune.txt" + cat /home/pi/CubeSatSim/groundstation/auto-tune.txt + confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) + echo "Auto tune confidence: " + echo $confidence fi + frequency=$(awk '{print $1}' auto-tune.txt) echo "Auto tune frequency: " From 910d02b597038604ea822a0e7cf561485c767200 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 22:56:42 -0400 Subject: [PATCH 22/63] Update sstv_decode_prompt.sh add venv --- groundstation/sstv_decode_prompt.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 0faedca8..44188ea5 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -121,6 +121,7 @@ setsid qsstv & sleep 5 +source /home/pi/venv/bin/activate python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt echo "auto-tune.txt" cat /home/pi/CubeSatSim/groundstation/auto-tune.txt From 920a76cf42c78849422cc0803397fd0fce08f973 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 22:57:49 -0400 Subject: [PATCH 23/63] Update sstv_decode_prompt.sh fix frequency set --- groundstation/sstv_decode_prompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 44188ea5..0e546d89 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -140,7 +140,7 @@ if [ "$confidence" -lt "$threshold" ]; then echo $confidence fi -frequency=$(awk '{print $1}' auto-tune.txt) +frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune frequency: " echo $frequency From 327e00082014fc1bfbef0118f0b058fc8ae02e33 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 23:03:58 -0400 Subject: [PATCH 24/63] Update auto-tune.py change to 2000 --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 5efc2123..86884b0d 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -81,7 +81,7 @@ if __name__ == "__main__": # print(center_frequency) offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) - freq_max = center_frequency + offset + 4000 + freq_max = center_frequency + offset + 2000 print(f" {freq_max:.0f} {max_value:.0f}") #print(f"The minimum signal is {min_value} at frequency {freq_min}") From e3decd109820ee39fe794925e9ca0a8a78890a80 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 23:23:54 -0400 Subject: [PATCH 25/63] Update sstv_decode_prompt.sh check 3 times, only change if high confidence --- groundstation/sstv_decode_prompt.sh | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 0e546d89..d6a2483d 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -123,8 +123,8 @@ sleep 5 source /home/pi/venv/bin/activate python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt -echo "auto-tune.txt" -cat /home/pi/CubeSatSim/groundstation/auto-tune.txt +# echo "auto-tune.txt" +# cat /home/pi/CubeSatSim/groundstation/auto-tune.txt threshold="3" confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence: " @@ -133,14 +133,26 @@ echo $confidence if [ "$confidence" -lt "$threshold" ]; then sleep 10 python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt - echo "auto-tune.txt" - cat /home/pi/CubeSatSim/groundstation/auto-tune.txt +# echo "auto-tune.txt" +# cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence: " echo $confidence + + if [ "$confidence" -lt "$threshold" ]; then + sleep 10 + python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt + # echo "auto-tune.txt" + # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt + confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) + echo "Auto tune confidence: " + echo $confidence + fi fi -frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) +if [ "$confidence" -gt "$threshold" ]; then + frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) +fi echo "Auto tune frequency: " echo $frequency From 5d0d29aa86f0bb203c8442fe653d5d6863ae599f Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 23:34:21 -0400 Subject: [PATCH 26/63] Update auto-tune.py switch to 1e6 --- groundstation/auto-tune.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 86884b0d..ead2ddbb 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -16,7 +16,7 @@ if __name__ == "__main__": if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): graph = 'y' - sampling_rate = 1024e3 # 250e3 # Hz + sampling_rate = 1e6 #1024e3 # 250e3 # Hz duration = 65536/sampling_rate # 1 # seconds t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) @@ -80,7 +80,8 @@ if __name__ == "__main__": # print(sampling_rate) # print(center_frequency) - offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) +# offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) + offset = np.argmax(x) - 2000 freq_max = center_frequency + offset + 2000 print(f" {freq_max:.0f} {max_value:.0f}") From 5a08dc8372447bdac129f221af8a9f74612186d0 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 23:38:03 -0400 Subject: [PATCH 27/63] Update auto-tune.py revert --- groundstation/auto-tune.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index ead2ddbb..86884b0d 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -16,7 +16,7 @@ if __name__ == "__main__": if (sys.argv[2] == 'g') or (sys.argv[2] == '-g'): graph = 'y' - sampling_rate = 1e6 #1024e3 # 250e3 # Hz + sampling_rate = 1024e3 # 250e3 # Hz duration = 65536/sampling_rate # 1 # seconds t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) @@ -80,8 +80,7 @@ if __name__ == "__main__": # print(sampling_rate) # print(center_frequency) -# offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) - offset = np.argmax(x) - 2000 + offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) freq_max = center_frequency + offset + 2000 print(f" {freq_max:.0f} {max_value:.0f}") From 21f36f6ccf0497874cefe81bc47d8e267806d2c2 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 23:52:40 -0400 Subject: [PATCH 28/63] Update auto-tune.py gain to 47 --- groundstation/auto-tune.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index 86884b0d..d49ab3f6 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -26,7 +26,7 @@ if __name__ == "__main__": sdr.sample_rate = sampling_rate # 250e3 # 2.4e6 #center_frequency = 434.8e6 sdr.center_freq = center_frequency - sdr.gain = 29 + sdr.gain = 47 sdr.direct_sampling = False # signal = sdr.read_samples(64*1024) #256 From bd901a424e38b2f61486ac2781150b4ce67fe559 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 27 Oct 2025 23:56:12 -0400 Subject: [PATCH 29/63] Update sstv_decode_prompt.sh confidence threshold 1 --- groundstation/sstv_decode_prompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index d6a2483d..61e9b30f 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -125,7 +125,7 @@ source /home/pi/venv/bin/activate python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt -threshold="3" +threshold="1" confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence: " echo $confidence From be27ae69e881d841db831f4a0089290b1242fed3 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 08:39:30 -0400 Subject: [PATCH 30/63] Update sstv_decode_prompt.sh change to less than or equal --- groundstation/sstv_decode_prompt.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 61e9b30f..40f9d9f6 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -130,7 +130,7 @@ confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence: " echo $confidence -if [ "$confidence" -lt "$threshold" ]; then +if [ "$confidence" -le "$threshold" ]; then sleep 10 python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt # echo "auto-tune.txt" @@ -139,7 +139,7 @@ if [ "$confidence" -lt "$threshold" ]; then echo "Auto tune confidence: " echo $confidence - if [ "$confidence" -lt "$threshold" ]; then + if [ "$confidence" -le "$threshold" ]; then sleep 10 python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt # echo "auto-tune.txt" From 6ebfc9c46213b2d0b48db8f00b4dbacfe2b2de85 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 08:45:38 -0400 Subject: [PATCH 31/63] Update sstv_decode_prompt.sh only print autotune when above threshold --- groundstation/sstv_decode_prompt.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 40f9d9f6..48d00ffb 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -127,7 +127,7 @@ python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /ho # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt threshold="1" confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) -echo "Auto tune confidence: " +echo -n "Auto tune confidence: " echo $confidence if [ "$confidence" -le "$threshold" ]; then @@ -136,7 +136,7 @@ if [ "$confidence" -le "$threshold" ]; then # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo "Auto tune confidence: " + echo -n "Auto tune confidence: " echo $confidence if [ "$confidence" -le "$threshold" ]; then @@ -145,18 +145,17 @@ if [ "$confidence" -le "$threshold" ]; then # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo "Auto tune confidence: " + echo -n "Auto tune confidence: " echo $confidence fi fi if [ "$confidence" -gt "$threshold" ]; then frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) + echo -n "Auto tune frequency: " + echo $frequency fi -echo "Auto tune frequency: " -echo $frequency - #sudo systemctl restart cubesatsim value=`aplay -l | grep "Loopback"` From 992648f19b13bd0eaf69532d25d4b1260968cd08 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 08:48:22 -0400 Subject: [PATCH 32/63] Update sstv_decode_prompt.sh auto-tune failed message --- groundstation/sstv_decode_prompt.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 48d00ffb..ccd08538 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -154,7 +154,10 @@ if [ "$confidence" -gt "$threshold" ]; then frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo -n "Auto tune frequency: " echo $frequency +else + echo "Auto tune failed, frequency unchanged" fi +echo #sudo systemctl restart cubesatsim From dcab91164ad3c33a594db24c8c18e4e5a56e7af6 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:01:10 -0400 Subject: [PATCH 33/63] Update sstv_decode_prompt.sh add auto-tune prompt option --- groundstation/sstv_decode_prompt.sh | 59 +++++++++++++++++------------ 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index ccd08538..4b638346 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -34,7 +34,9 @@ sudo killall -9 rtl_fm &>/dev/null #echo "s" >> .mode -frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=220 --title="SSTV Decoding using QSSTV" --text="Choose the frequency for SSTV decoding:" --column="kHz" --column="Use" 145800 "ISS" 434900 "CubeSatSim" Other "Choose another frequency" SSTV "Test SSTV decoding with WAV file") +autotune=0 + +frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=220 --title="SSTV Decoding using QSSTV" --text="Choose the frequency for SSTV decoding:" --column="kHz" --column="Use" 145800 "ISS" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" Other "Choose another frequency" SSTV "Test SSTV decoding with WAV file") echo $frequency @@ -70,6 +72,11 @@ echo echo "If your CubeSatSim is transmitting in SSTV mode (mode 4) you should get images." echo "Note: if you see and hear an SSTV signal but don't get any images, the CubeSatSim signal might have a frequency offset. Try rebooting the CubeSatSim to fix." +elif [ "$frequency" = "Auto-tune" ]; then + +frequency=434900000 +autotune=1 + elif [ "$choice" = "3" ] || [ "$frequency" = "Other" ]; then echo @@ -121,24 +128,17 @@ setsid qsstv & sleep 5 -source /home/pi/venv/bin/activate -python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt -# echo "auto-tune.txt" -# cat /home/pi/CubeSatSim/groundstation/auto-tune.txt -threshold="1" -confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) -echo -n "Auto tune confidence: " -echo $confidence - -if [ "$confidence" -le "$threshold" ]; then - sleep 10 +if [ "$autotune" = "1" ]; then + + source /home/pi/venv/bin/activate python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt -# echo "auto-tune.txt" -# cat /home/pi/CubeSatSim/groundstation/auto-tune.txt + # echo "auto-tune.txt" + # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt + threshold="1" confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo -n "Auto tune confidence: " + echo -n "Auto tune confidence: " echo $confidence - + if [ "$confidence" -le "$threshold" ]; then sleep 10 python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt @@ -147,17 +147,28 @@ if [ "$confidence" -le "$threshold" ]; then confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo -n "Auto tune confidence: " echo $confidence + + if [ "$confidence" -le "$threshold" ]; then + sleep 10 + python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt + # echo "auto-tune.txt" + # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt + confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) + echo -n "Auto tune confidence: " + echo $confidence + fi fi -fi + + if [ "$confidence" -gt "$threshold" ]; then + frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) + echo -n "Auto tune frequency: " + echo $frequency + else + echo "Auto tune failed, frequency unchanged" + fi + echo -if [ "$confidence" -gt "$threshold" ]; then - frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo -n "Auto tune frequency: " - echo $frequency -else - echo "Auto tune failed, frequency unchanged" fi -echo #sudo systemctl restart cubesatsim From 73bfd12ab64eb31d37a4a10558c770fb10f3c36a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:05:10 -0400 Subject: [PATCH 34/63] Update sstv_decode_prompt.sh retry in 5 sec --- groundstation/sstv_decode_prompt.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 4b638346..69e49b2a 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -122,25 +122,26 @@ echo echo -e "Auto decoding SSTV on $frequency Hz" -sleep 2 +#sleep 2 setsid qsstv & -sleep 5 +#sleep 5 if [ "$autotune" = "1" ]; then - + threshold="1" + retry="5" + source /home/pi/venv/bin/activate python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt - threshold="1" confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo -n "Auto tune confidence: " echo $confidence if [ "$confidence" -le "$threshold" ]; then - sleep 10 + sleep $retry python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt @@ -149,7 +150,7 @@ if [ "$autotune" = "1" ]; then echo $confidence if [ "$confidence" -le "$threshold" ]; then - sleep 10 + sleep $retry python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt From 128f7410afc0774fdc2be89a957d9358ce77c12a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:06:50 -0400 Subject: [PATCH 35/63] Update sstv_decode_prompt.sh prompt window larger --- groundstation/sstv_decode_prompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 69e49b2a..34021670 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -36,7 +36,7 @@ sudo killall -9 rtl_fm &>/dev/null autotune=0 -frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=220 --title="SSTV Decoding using QSSTV" --text="Choose the frequency for SSTV decoding:" --column="kHz" --column="Use" 145800 "ISS" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" Other "Choose another frequency" SSTV "Test SSTV decoding with WAV file") +frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=420 --title="SSTV Decoding using QSSTV" --text="Choose the frequency for SSTV decoding:" --column="kHz" --column="Use" 145800 "ISS" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" Other "Choose another frequency" SSTV "Test SSTV decoding with WAV file") echo $frequency From 842c4623bac608d5d99582f3f50c8ec7ebd33860 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:11:56 -0400 Subject: [PATCH 36/63] Update sstv_decode_prompt.sh change prints --- groundstation/sstv_decode_prompt.sh | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 34021670..a61b2851 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -137,8 +137,7 @@ if [ "$autotune" = "1" ]; then # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo -n "Auto tune confidence: " - echo $confidence + echo "Auto tune confidence: " $confidence if [ "$confidence" -le "$threshold" ]; then sleep $retry @@ -146,8 +145,7 @@ if [ "$autotune" = "1" ]; then # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo -n "Auto tune confidence: " - echo $confidence + echo "Auto tune confidence: " $confidence if [ "$confidence" -le "$threshold" ]; then sleep $retry @@ -155,19 +153,19 @@ if [ "$autotune" = "1" ]; then # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo -n "Auto tune confidence: " - echo $confidence + echo "Auto tune confidence: " $confidence fi fi if [ "$confidence" -gt "$threshold" ]; then frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo -n "Auto tune frequency: " - echo $frequency + echo "Auto tune frequency: " $frequency else echo "Auto tune failed, frequency unchanged" fi echo + echo "If your CubeSatSim is transmitting in SSTV mode (mode 4) you should get images." + echo fi From c4310cee67525d892943a12b06a3e35943e97ad0 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:13:29 -0400 Subject: [PATCH 37/63] Update sstv_decode_prompt.sh prompt window size --- groundstation/sstv_decode_prompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index a61b2851..25bcbe14 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -36,7 +36,7 @@ sudo killall -9 rtl_fm &>/dev/null autotune=0 -frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=420 --title="SSTV Decoding using QSSTV" --text="Choose the frequency for SSTV decoding:" --column="kHz" --column="Use" 145800 "ISS" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" Other "Choose another frequency" SSTV "Test SSTV decoding with WAV file") +frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=260 --title="SSTV Decoding using QSSTV" --text="Choose the frequency for SSTV decoding:" --column="kHz" --column="Use" 145800 "ISS" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" Other "Choose another frequency" SSTV "Test SSTV decoding with WAV file") echo $frequency From 9f8d7e1e1e479afb67390c79805ed9bf8b109244 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:14:22 -0400 Subject: [PATCH 38/63] Update sstv_decode_prompt.sh prompt window size --- groundstation/sstv_decode_prompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 25bcbe14..22387e69 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -36,7 +36,7 @@ sudo killall -9 rtl_fm &>/dev/null autotune=0 -frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=260 --title="SSTV Decoding using QSSTV" --text="Choose the frequency for SSTV decoding:" --column="kHz" --column="Use" 145800 "ISS" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" Other "Choose another frequency" SSTV "Test SSTV decoding with WAV file") +frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=270 --title="SSTV Decoding using QSSTV" --text="Choose the frequency for SSTV decoding:" --column="kHz" --column="Use" 145800 "ISS" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" Other "Choose another frequency" SSTV "Test SSTV decoding with WAV file") echo $frequency From b9e3fdf2f481e1a28654b3ad973715d86a1f8ba9 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:23:40 -0400 Subject: [PATCH 39/63] Update sstv_decode_prompt.sh autotune while loop --- groundstation/sstv_decode_prompt.sh | 36 +++++++++++------------------ 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 22387e69..dc350a87 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -129,33 +129,23 @@ setsid qsstv & #sleep 5 if [ "$autotune" = "1" ]; then - threshold="1" - retry="5" + threshold=1 + delay=5 + retries=5 - source /home/pi/venv/bin/activate - python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt - # echo "auto-tune.txt" - # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt - confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo "Auto tune confidence: " $confidence - - if [ "$confidence" -le "$threshold" ]; then - sleep $retry + tries=0 + confidence=0 + while [ $tries -le $retries ] && [ "$confidence" -le "$threshold" ]; do + + sleep $delay + source /home/pi/venv/bin/activate python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt - # echo "auto-tune.txt" - # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt + # echo "auto-tune.txt" + # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence: " $confidence - - if [ "$confidence" -le "$threshold" ]; then - sleep $retry - python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt - # echo "auto-tune.txt" - # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt - confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo "Auto tune confidence: " $confidence - fi - fi + + done if [ "$confidence" -gt "$threshold" ]; then frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) From cdc8c2f607df5702aee314aaa63e6f4b0b398818 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:36:02 -0400 Subject: [PATCH 40/63] Update packet.sh add auto-tune --- groundstation/packet.sh | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/groundstation/packet.sh b/groundstation/packet.sh index 803e988a..9a6f52f3 100755 --- a/groundstation/packet.sh +++ b/groundstation/packet.sh @@ -37,7 +37,9 @@ sudo /etc/init.d/alsa-utils start echo -frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=360 --title="Packet Decoding with Direwolf" --text="Choose the frequency for packet decoding" --column="kHz" --column="Application" 144390 "APRS US 2m" 434900 "CubeSatSim" 144800 "APRS European 2m" 145175 "APRS Australian 2m" Other "Choose another frequency" 145825 "APRS on ISS" APRS "Test APRS decoding with CubeSatSim WAV file") +autotune=0 + +frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=4000 --title="Packet Decoding with Direwolf" --text="Choose the frequency for packet decoding" --column="kHz" --column="Application" 144390 "APRS US 2m" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" 144800 "APRS European 2m" 145175 "APRS Australian 2m" Other "Choose another frequency" 145825 "APRS on ISS" APRS "Test APRS decoding with CubeSatSim WAV file") #echo $frequency @@ -75,6 +77,10 @@ elif [ "$choice" = "2" ] || [ "$frequency" = "434900" ] ; then echo "If your CubeSatSim is transmitting in APRS mode (mode 1) then you should see packets." echo +elif [ "$frequency" = "Auto-tune" ] ; then + + frequency=434900000 + elif [ "$choice" = "3" ] || [ "$frequency" = "144800" ]; then frequency=144800000 @@ -155,7 +161,38 @@ echo #fi -sleep 5 +#sleep 5 + +if [ "$autotune" = "1" ]; then + threshold=1 + delay=1 + retries=30 + + tries=0 + confidence=0 + while [ $tries -le $retries ] && [ "$confidence" -le "$threshold" ]; do + + sleep $delay + source /home/pi/venv/bin/activate + python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt + # echo "auto-tune.txt" + # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt + confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) + echo "Auto tune confidence: " $confidence + + done + + if [ "$confidence" -gt "$threshold" ]; then + frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) + echo "Auto tune frequency: " $frequency + else + echo "Auto tune failed, frequency unchanged" + fi + echo + echo "If your CubeSatSim is transmitting in APRS mode (mode 1) then you should see packets." + echo + +fi value=`aplay -l | grep "Loopback"` echo "$value" > /dev/null From 14de4150895ddee432de3dfdf629229a08ece6aa Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:39:36 -0400 Subject: [PATCH 41/63] Update packet.sh turn on autotune --- groundstation/packet.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/groundstation/packet.sh b/groundstation/packet.sh index 9a6f52f3..a541bbae 100755 --- a/groundstation/packet.sh +++ b/groundstation/packet.sh @@ -39,7 +39,7 @@ echo autotune=0 -frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=4000 --title="Packet Decoding with Direwolf" --text="Choose the frequency for packet decoding" --column="kHz" --column="Application" 144390 "APRS US 2m" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" 144800 "APRS European 2m" 145175 "APRS Australian 2m" Other "Choose another frequency" 145825 "APRS on ISS" APRS "Test APRS decoding with CubeSatSim WAV file") +frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=400 --title="Packet Decoding with Direwolf" --text="Choose the frequency for packet decoding" --column="kHz" --column="Application" 144390 "APRS US 2m" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" 144800 "APRS European 2m" 145175 "APRS Australian 2m" Other "Choose another frequency" 145825 "APRS on ISS" APRS "Test APRS decoding with CubeSatSim WAV file") #echo $frequency @@ -80,6 +80,7 @@ elif [ "$choice" = "2" ] || [ "$frequency" = "434900" ] ; then elif [ "$frequency" = "Auto-tune" ] ; then frequency=434900000 + autotune=1 elif [ "$choice" = "3" ] || [ "$frequency" = "144800" ]; then From a8f1a4095f6c5c8176ddbd4bfae1bbc6eed17660 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:42:10 -0400 Subject: [PATCH 42/63] Update packet.sh remove delay --- groundstation/packet.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/packet.sh b/groundstation/packet.sh index a541bbae..ed28f12c 100755 --- a/groundstation/packet.sh +++ b/groundstation/packet.sh @@ -173,7 +173,7 @@ if [ "$autotune" = "1" ]; then confidence=0 while [ $tries -le $retries ] && [ "$confidence" -le "$threshold" ]; do - sleep $delay +# sleep $delay source /home/pi/venv/bin/activate python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt # echo "auto-tune.txt" From 27cbf1a822e79457fc7efb2e8cb202915c4f8796 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 09:47:53 -0400 Subject: [PATCH 43/63] Update packet.sh add auto-tune text --- groundstation/packet.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/groundstation/packet.sh b/groundstation/packet.sh index ed28f12c..7c4ee945 100755 --- a/groundstation/packet.sh +++ b/groundstation/packet.sh @@ -168,7 +168,9 @@ if [ "$autotune" = "1" ]; then threshold=1 delay=1 retries=30 - + + echo "Starting Auto-tune scanning" + echo "Scan will stop when confidence exceeds threshold value of " $threshold " or after " $retries " retries" tries=0 confidence=0 while [ $tries -le $retries ] && [ "$confidence" -le "$threshold" ]; do From 3293b75c6af4d43d915d8326cb7972217466a71d Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 10:20:10 -0400 Subject: [PATCH 44/63] Update sstv_decode_prompt.sh add starting auto tune message --- groundstation/sstv_decode_prompt.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index dc350a87..19588782 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -132,7 +132,9 @@ if [ "$autotune" = "1" ]; then threshold=1 delay=5 retries=5 - + + echo "Starting Auto-tune scanning" + echo "Scan will stop when confidence exceeds threshold value of " $threshold " or after " $retries " retries" tries=0 confidence=0 while [ $tries -le $retries ] && [ "$confidence" -le "$threshold" ]; do From 249887715b94a12c87a01ccde35e64af413b9a9c Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 10:22:06 -0400 Subject: [PATCH 45/63] Update sstv_decode_prompt.sh fix echos --- groundstation/sstv_decode_prompt.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 19588782..4ed695a4 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -134,7 +134,7 @@ if [ "$autotune" = "1" ]; then retries=5 echo "Starting Auto-tune scanning" - echo "Scan will stop when confidence exceeds threshold value of " $threshold " or after " $retries " retries" + echo "Scan will stop when confidence exceeds threshold value of" $threshold "or after" $retries "retries" tries=0 confidence=0 while [ $tries -le $retries ] && [ "$confidence" -le "$threshold" ]; do @@ -145,13 +145,13 @@ if [ "$autotune" = "1" ]; then # echo "auto-tune.txt" # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo "Auto tune confidence: " $confidence + echo "Auto tune confidence:" $confidence done if [ "$confidence" -gt "$threshold" ]; then frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) - echo "Auto tune frequency: " $frequency + echo "Auto tune frequency:" $frequency else echo "Auto tune failed, frequency unchanged" fi From ec1c707164688ab719863687c5618fef35b372a7 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 10:24:35 -0400 Subject: [PATCH 46/63] Update sstv_decode_prompt.sh subtract 2 second delay --- groundstation/sstv_decode_prompt.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index 4ed695a4..e7710011 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -137,6 +137,7 @@ if [ "$autotune" = "1" ]; then echo "Scan will stop when confidence exceeds threshold value of" $threshold "or after" $retries "retries" tries=0 confidence=0 + delay=$((delay-2)) # subtract 2 second built in delay while [ $tries -le $retries ] && [ "$confidence" -le "$threshold" ]; do sleep $delay From bbe606672d2d6891d9a032e96a22fcbe6d16b902 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 10:27:10 -0400 Subject: [PATCH 47/63] Update sstv_decode_prompt.sh increment tries --- groundstation/sstv_decode_prompt.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/groundstation/sstv_decode_prompt.sh b/groundstation/sstv_decode_prompt.sh index e7710011..ea3c396d 100755 --- a/groundstation/sstv_decode_prompt.sh +++ b/groundstation/sstv_decode_prompt.sh @@ -147,6 +147,7 @@ if [ "$autotune" = "1" ]; then # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence:" $confidence + tries=$((tries+1)) done From 8a3a1a07f227cc4f8dff25327f9e5a0ba319525a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 28 Oct 2025 10:31:20 -0400 Subject: [PATCH 48/63] Update packet.sh add tries increment --- groundstation/packet.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/groundstation/packet.sh b/groundstation/packet.sh index 7c4ee945..3835a581 100755 --- a/groundstation/packet.sh +++ b/groundstation/packet.sh @@ -182,6 +182,7 @@ if [ "$autotune" = "1" ]; then # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) echo "Auto tune confidence: " $confidence + tries=$((tries+1)) done From 07fc9aeb7f667ba17206878716776e1d5d463a60 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Wed, 29 Oct 2025 14:14:23 -0400 Subject: [PATCH 49/63] Update fctelem.sh add auto-tune --- groundstation/fctelem.sh | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/groundstation/fctelem.sh b/groundstation/fctelem.sh index 4beb88a3..c2682806 100755 --- a/groundstation/fctelem.sh +++ b/groundstation/fctelem.sh @@ -80,8 +80,9 @@ else echo fi +autotune=0 -frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=180 --title="FUNcube Telem Decoding" --text="Choose the frequency for FUNcube decoding:" --column="kHz" --column="Use" 434900 "CubeSatSim" Other "Choose another frequency") +frequency=$(zenity --timeout=10 --list 2>/dev/null --width=410 --height=220 --title="FUNcube Telem Decoding" --text="Choose the frequency for FUNcube decoding:" --column="kHz" --column="Use" 434900 "CubeSatSim" Auto-tune "CubeSatSim Auto-tune" Other "Choose another frequency") echo $frequency @@ -96,6 +97,11 @@ if [ "$frequency" = "434900" ]; then frequency=434900000 +elif [ "$frequency" = "Auto-tune" ]; then + + frequency=434900000 + autotune=1 + elif [ "$frequency" = "Other" ]; then echo @@ -110,6 +116,38 @@ elif [ "$frequency" = "Other" ]; then fi +if [ "$autotune" = "1" ]; then + threshold=1 + delay=5 + retries=5 + + echo "Starting Auto-tune scanning" + echo "Scan will stop when confidence exceeds threshold value of" $threshold "or after" $retries "retries" + tries=0 + confidence=0 + delay=$((delay-2)) # subtract 2 second built in delay + while [ $tries -le $retries ] && [ "$confidence" -le "$threshold" ]; do + + sleep $delay + source /home/pi/venv/bin/activate + python3 /home/pi/CubeSatSim/groundstation/auto-tune.py 434900000 n 2> null > /home/pi/CubeSatSim/groundstation/auto-tune.txt + # echo "auto-tune.txt" + # cat /home/pi/CubeSatSim/groundstation/auto-tune.txt + confidence=$(awk '{print $2}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) + echo "Auto tune confidence:" $confidence + tries=$((tries+1)) + + done + + if [ "$confidence" -gt "$threshold" ]; then + frequency=$(awk '{print $1}' /home/pi/CubeSatSim/groundstation/auto-tune.txt) + echo "Auto tune frequency:" $frequency + else + echo "Auto tune failed, frequency unchanged" + fi + +fi + echo "Frequency is" $frequency echo echo "If your CubeSatSim is transmitting in FUNcube mode (mode 7) you should get some frames after 30 seconds" From 8efbdcb94171bf46a4bc82446e396f87b8119c77 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Wed, 29 Oct 2025 14:17:59 -0400 Subject: [PATCH 50/63] Update fctelem.sh 10 sec delay --- groundstation/fctelem.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/groundstation/fctelem.sh b/groundstation/fctelem.sh index c2682806..c87fa46b 100755 --- a/groundstation/fctelem.sh +++ b/groundstation/fctelem.sh @@ -148,6 +148,8 @@ if [ "$autotune" = "1" ]; then fi +sleep 10 + echo "Frequency is" $frequency echo echo "If your CubeSatSim is transmitting in FUNcube mode (mode 7) you should get some frames after 30 seconds" From 52c0a2a930c1fc8e51bdfb4d98807f2599e0160e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Wed, 29 Oct 2025 14:48:56 -0400 Subject: [PATCH 51/63] Update fctelem.sh 5 second delay --- groundstation/fctelem.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/groundstation/fctelem.sh b/groundstation/fctelem.sh index c87fa46b..0b4c92a3 100755 --- a/groundstation/fctelem.sh +++ b/groundstation/fctelem.sh @@ -146,10 +146,9 @@ if [ "$autotune" = "1" ]; then echo "Auto tune failed, frequency unchanged" fi +sleep 5 fi -sleep 10 - echo "Frequency is" $frequency echo echo "If your CubeSatSim is transmitting in FUNcube mode (mode 7) you should get some frames after 30 seconds" From 4aaa8daabed36194f0c01f8f4ef8431346eb8f7a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Wed, 29 Oct 2025 15:22:51 -0400 Subject: [PATCH 52/63] Update auto-tune.py catch rtl failure --- groundstation/auto-tune.py | 138 +++++++++++++++++++------------------ 1 file changed, 70 insertions(+), 68 deletions(-) diff --git a/groundstation/auto-tune.py b/groundstation/auto-tune.py index d49ab3f6..b7808902 100644 --- a/groundstation/auto-tune.py +++ b/groundstation/auto-tune.py @@ -18,74 +18,76 @@ if __name__ == "__main__": sampling_rate = 1024e3 # 250e3 # Hz duration = 65536/sampling_rate # 1 # seconds - t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) - - sdr = RtlSdr() - - # configure device - sdr.sample_rate = sampling_rate # 250e3 # 2.4e6 - #center_frequency = 434.8e6 - sdr.center_freq = center_frequency - sdr.gain = 47 - sdr.direct_sampling = False - - # signal = sdr.read_samples(64*1024) #256 - signal = sdr.read_samples(duration*sampling_rate).real #256 - -# print(f"Center frequency is {center_frequency}") - - sdr.close() - - # Compute the FFT - fft_result = np.fft.fft(signal) - - # Calculate the frequencies corresponding to the FFT output - n = len(signal) - frequencies = np.fft.fftfreq(n, d=1/sampling_rate) - - # Take the absolute value for amplitude spectrum and consider only the positive frequencies - positive_frequencies_indices = np.where(frequencies >= 0) - positive_frequencies = frequencies[positive_frequencies_indices] - amplitude_spectrum = 2/n * np.abs(fft_result[positive_frequencies_indices]) # Normalize for amplitude - - if (graph == 'y'): - # Plotting the results - plt.figure(figsize=(12, 6)) - - plt.subplot(1, 2, 1) - plt.plot(t, signal) - plt.title('Time Domain Signal') - plt.xlabel('Time (s)') - plt.ylabel('Amplitude') - - plt.subplot(1, 2, 2) - plt.stem(positive_frequencies, amplitude_spectrum, markerfmt=" ", basefmt="-b") - plt.title('Frequency Domain (FFT)') - plt.xlabel('Frequency (Hz)') - plt.ylabel('Amplitude') - plt.grid(True) - - plt.tight_layout() - plt.show() - - # print(amplitude_spectrum) - x = amplitude_spectrum - # print(x) - min_value = min(x) - max_value = max(x) * 100 - - #freq_min = np.argmax(min_value) - # print(np.argmax(x)) - # print(np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) - # print(sampling_rate) - # print(center_frequency) - - offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) - freq_max = center_frequency + offset + 2000 + try: + sdr = RtlSdr() + + # configure device + sdr.sample_rate = sampling_rate # 250e3 # 2.4e6 + #center_frequency = 434.8e6 + sdr.center_freq = center_frequency + sdr.gain = 47 + sdr.direct_sampling = False + + # signal = sdr.read_samples(64*1024) #256 + signal = sdr.read_samples(duration*sampling_rate).real #256 + + # print(f"Center frequency is {center_frequency}") + + sdr.close() + + # Compute the FFT + fft_result = np.fft.fft(signal) + + # Calculate the frequencies corresponding to the FFT output + n = len(signal) + frequencies = np.fft.fftfreq(n, d=1/sampling_rate) + + # Take the absolute value for amplitude spectrum and consider only the positive frequencies + positive_frequencies_indices = np.where(frequencies >= 0) + positive_frequencies = frequencies[positive_frequencies_indices] + amplitude_spectrum = 2/n * np.abs(fft_result[positive_frequencies_indices]) # Normalize for amplitude + + if (graph == 'y'): + # Plotting the results + t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False) + + plt.figure(figsize=(12, 6)) + + plt.subplot(1, 2, 1) + plt.plot(t, signal) + plt.title('Time Domain Signal') + plt.xlabel('Time (s)') + plt.ylabel('Amplitude') + + plt.subplot(1, 2, 2) + plt.stem(positive_frequencies, amplitude_spectrum, markerfmt=" ", basefmt="-b") + plt.title('Frequency Domain (FFT)') + plt.xlabel('Frequency (Hz)') + plt.ylabel('Amplitude') + plt.grid(True) + + plt.tight_layout() + plt.show() + + # print(amplitude_spectrum) + x = amplitude_spectrum + # print(x) + min_value = min(x) + max_value = max(x) * 100 + + #freq_min = np.argmax(min_value) + # print(np.argmax(x)) + # print(np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) + # print(sampling_rate) + # print(center_frequency) + + offset = (np.argmax(x)*(150e3 - 10e3)/(9770 - 709)) + freq_max = center_frequency + offset + 2000 + except: # if no RTL-SDR or in use, stop scanning with high max value and center frequency + max_value = 100 + freq_max = center_frequency + 200e3 # should be 434900000 + print(f" {freq_max:.0f} {max_value:.0f}") - #print(f"The minimum signal is {min_value} at frequency {freq_min}") - - #print(min_value) - #print(max_value) + From 122aa7d912ac881b6e0e1fd450bee3de3acbf20a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 26 May 2026 07:38:44 -0400 Subject: [PATCH 53/63] Update install wiringpi v3 not v2 --- install | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/install b/install index 964e13ed..5b7813c9 100755 --- a/install +++ b/install @@ -404,12 +404,20 @@ fi sudo systemctl disable gpsd sudo systemctl disable gpsd.socket -if [ ! -d "/home/pi/WiringPi" ]; then - cd - git clone https://github.com/alanbjohnston/WiringPi - cd WiringPi +#if [ ! -d "/home/pi/WiringPi" ]; then +# cd +# git clone https://github.com/alanbjohnston/WiringPi +# cd WiringPi +# ./build debian +# sudo dpkg -i debian-template/wiringpi-2.61-1.deb +#fi + +if [ ! -d "/home/pi/WiringPi3" ]; then + git clone https://github.com/WiringPi/WiringPi.git WiringPi3 + cd WiringPi3 ./build debian - sudo dpkg -i debian-template/wiringpi-2.61-1.deb + mv debian-template/wiringpi*.deb . + sudo apt install ./wiringpi*.deb fi cd From 92ca8ce4134a20bda5c8f11a1604141e0042b9c0 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Tue, 26 May 2026 07:47:27 -0400 Subject: [PATCH 54/63] Update install add cd to wiringpi 3 --- install | 1 + 1 file changed, 1 insertion(+) diff --git a/install b/install index 5b7813c9..6bdc4212 100755 --- a/install +++ b/install @@ -413,6 +413,7 @@ fi #fi if [ ! -d "/home/pi/WiringPi3" ]; then + cd git clone https://github.com/WiringPi/WiringPi.git WiringPi3 cd WiringPi3 ./build debian From c4b2fd95c6ba21dafead1bb800f7b895a533a875 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Thu, 28 May 2026 15:46:40 -0400 Subject: [PATCH 55/63] Update pacsat.sh fix unzip on PacSatGround, Loop not fixed yet --- groundstation/pacsat.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/pacsat.sh b/groundstation/pacsat.sh index 58c803c7..bf154188 100755 --- a/groundstation/pacsat.sh +++ b/groundstation/pacsat.sh @@ -133,7 +133,7 @@ else cd sudo rm PacSatGround.zip &>/dev/null wget https://github.com/alanbjohnston/CubeSatSim/raw/refs/heads/master-b/spacecraft/PacSatGround_0.46o/PacSatGround.zip - unzip PacSatGround.zip -d PacSatGround + unzip PacSatGround.zip sudo rm PacSatGround.zip FILE=/home/pi/Desktop/PacsatGround/spacecraft/PacSatSim.properties From 08b31d5407da6c4f96a51e647afcf1bb808540cb Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Thu, 28 May 2026 16:39:00 -0400 Subject: [PATCH 56/63] Update pacsat.sh only do rtl_test if no TXC --- groundstation/pacsat.sh | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/groundstation/pacsat.sh b/groundstation/pacsat.sh index bf154188..1318e738 100755 --- a/groundstation/pacsat.sh +++ b/groundstation/pacsat.sh @@ -43,16 +43,19 @@ if [[ $(gpio -g read 7 | grep 0) ]] ; then else echo "TXC not present" txc=0 -fi -timeout 1 rtl_test &> out.txt -if [[ $(grep "No supported" out.txt) ]] ; then - echo "No RTL-SDR detected" - rtl=0 -else - echo "RTL-SDR detected." - rtl=1 -fi + timeout 1 rtl_test &> out.txt + if [[ $(grep "No supported" out.txt) ]] ; then + echo "No RTL-SDR detected" + rtl=0 + else + echo "RTL-SDR detected." + rtl=1 + fi + + sudo killall -9 rtl_test &>/dev/null + +fi FILE=/home/pi/CubeSatSim/battery_saver if [ -f "$FILE" ]; then From 404695d347a26aa0f9519d55da024ef1d6f0c762 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Thu, 28 May 2026 16:42:48 -0400 Subject: [PATCH 57/63] Update pacsat.sh make sure rtl_test is killed at end --- groundstation/pacsat.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/groundstation/pacsat.sh b/groundstation/pacsat.sh index 1318e738..e5c6cd87 100755 --- a/groundstation/pacsat.sh +++ b/groundstation/pacsat.sh @@ -310,6 +310,8 @@ else fi +sudo killall -9 rtl_test &>/dev/null + sleep 10 #echo "Stopping Pacsatsim" From a5a3f5c137ddba6d1236ece7f92ac2c5b6611748 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Thu, 28 May 2026 22:56:30 -0400 Subject: [PATCH 58/63] Update install add libraspberrypi-dev for rpitx --- install | 1 + 1 file changed, 1 insertion(+) diff --git a/install b/install index 6bdc4212..1992de40 100755 --- a/install +++ b/install @@ -620,6 +620,7 @@ fi if [ ! -d "/home/pi/rpitx" ]; then + sudo apt install -y libraspberrypi-dev cd git clone https://github.com/alanbjohnston/rpitx.git cd rpitx From 17270c255aeb61fd02e6e868147a791576428c2b Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Thu, 28 May 2026 23:08:01 -0400 Subject: [PATCH 59/63] Update config don't check for rtl_sdr --- config | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config b/config index 36379864..324a5512 100755 --- a/config +++ b/config @@ -355,14 +355,14 @@ if [ "$1" = "" ]; then txc=0 fi - timeout 1 rtl_test &> out.txt - if [[ $(grep "No supported" out.txt) ]] ; then +# timeout 1 rtl_test &> out.txt +# if [[ $(grep "No supported" out.txt) ]] ; then # echo "No RTL-SDR detected" - rtl=0 - else - echo "RTL-SDR detected" - rtl=1 - fi +# rtl=0 +# else +# echo "RTL-SDR detected" +# rtl=1 +# fi echo echo -e "Current sim.cfg configuration file:" From 6a9da94b094c69f368eaf95c6f1d3fb68f476bf8 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 29 May 2026 09:16:55 -0400 Subject: [PATCH 60/63] Update pacsat.sh fix Loop unzip --- groundstation/pacsat.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/groundstation/pacsat.sh b/groundstation/pacsat.sh index e5c6cd87..68f390c4 100755 --- a/groundstation/pacsat.sh +++ b/groundstation/pacsat.sh @@ -111,6 +111,12 @@ elif [ "$loopback" = "1" ] ; then unzip PacSatGround.zip -d PacSatGroundLoop sudo rm PacSatGround.zip + mkdir PacSatGroundLoop/spacecraft + mv PacSatGroundLoop/PacSatGround/spacecraft/PacSatSim.properties PacSatGroundLoop/spacecraft/PacSatSim.properties + mv PacSatGroundLoop/PacSatGround/stp.dat PacSatGroundLoop/stp.dat + mv PacSatGroundLoop/PacSatGround/seq.dat PacSatGroundLoop/seq.dat + mv PacSatGroundLoop/PacSatGround/PacSatGround.properties PacSatGroundLoop/PacSatGround.properties + sudo sed -i 's/logfile_dir=\/home\/pi\/PacSatGround/logfile_dir=\/home\/pi\/PacSatGroundLoop/g' /home/pi/PacSatGroundLoop/PacSatGround.properties FILE=/home/pi/Desktop/PacsatGround/spacecraft/PacSatSim.properties From e48df7ce5edd1ff818ee4a43e80fba5ae353717a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 29 May 2026 09:52:39 -0400 Subject: [PATCH 61/63] Update pacsatsim.sh don't do rtl_test --- pacsatsim.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pacsatsim.sh b/pacsatsim.sh index 24350f6b..49213e18 100755 --- a/pacsatsim.sh +++ b/pacsatsim.sh @@ -50,14 +50,14 @@ else txc=0 fi -timeout 1 rtl_test &> out.txt -if [[ $(grep "No supported" out.txt) ]] ; then - echo "No RTL-SDR detected" - rtl=0 -else - echo "RTL-SDR detected." - rtl=1 -fi +#timeout 1 rtl_test &> out.txt +#if [[ $(grep "No supported" out.txt) ]] ; then +# echo "No RTL-SDR detected" +# rtl=0 +#else +# echo "RTL-SDR detected." +# rtl=1 +#fi value=`cat /home/pi/CubeSatSim/sim.cfg` echo "$value" > /dev/null From 2b9c828d47f43444f8a4abee9559767fff11f7fd Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 29 May 2026 15:38:51 -0400 Subject: [PATCH 62/63] Update sdr.sh add --password-store=basic to avoid keychain prompt in Chromium --- groundstation/sdr.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/sdr.sh b/groundstation/sdr.sh index 54ddb7a3..11298cd9 100755 --- a/groundstation/sdr.sh +++ b/groundstation/sdr.sh @@ -59,7 +59,7 @@ sudo systemctl restart openwebrx sleep 10 -setsid chromium-browser --check-for-update-interval=1 --simulate-critical-update --noerrdialogs --disable-infobars --app=http://localhost:8073 &>/dev/null & +setsid chromium-browser --password-store=basic --check-for-update-interval=1 --simulate-critical-update --noerrdialogs --disable-infobars --app=http://localhost:8073 &>/dev/null & sleep 10 From 7a48f51be49ce6bfb1705e17052462b77b299834 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 29 May 2026 16:19:24 -0400 Subject: [PATCH 63/63] Update pacsat-run.sh don't kill dire wolf on exit --- groundstation/pacsat-run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groundstation/pacsat-run.sh b/groundstation/pacsat-run.sh index d19b9dba..89e0252c 100755 --- a/groundstation/pacsat-run.sh +++ b/groundstation/pacsat-run.sh @@ -78,7 +78,7 @@ sudo killall -9 direwolf &>/dev/null fi -sudo killall -9 direwolf &>/dev/null +# sudo killall -9 direwolf &>/dev/null sleep 10