diff --git a/.gitignore b/.gitignore index 04810931..acb007e4 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,6 @@ logt.txt telem.txt.bk failure_mode.txt sim_mode_auto +direwolf-pacsatsim-tmp.conf +groundstation/direwolf-pacsat-tmp.conf +tlm.bin diff --git a/config b/config index 73eae931..861b0624 100755 --- a/config +++ b/config @@ -324,6 +324,32 @@ if [ "$1" = "" ]; then echo "Transmit beacon telemetry is ON" fi + if [[ $(arecord -l | grep "USB Audio Device") ]] ; then + echo "USB Sound Card detected" + soundcard=1 + else + echo "No USB Sound Card detected" + soundcard=0 + fi + + gpio -g mode 7 up + if [[ $(gpio -g read 7 | grep 0) ]] ; then + echo "FM TXC is present" + txc=1 + else + echo "FM 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 + echo echo -e "Current sim.cfg configuration file:" # echo @@ -1139,8 +1165,9 @@ elif [ "$1" = "-o" ]; then value=`cat /home/pi/CubeSatSim/.mode` echo "$value" > /dev/null set -- $value + MODE=$1 - if [ "$1" == "n" ]; then + if [ "$MODE" == "n" ]; then transmit_command "o" @@ -1151,35 +1178,19 @@ elif [ "$1" = "-o" ]; then FILE=/home/pi/CubeSatSim/beacon_off if [ -f "$FILE" ]; then - echo "Transmit beacon telemetry is off" -# echo -# echo "Do you want to turn beacon telemetry ON (y/n) " -# read reset - - reset="y" + echo "Transmit beacon telemetry is off" echo - if [ "$reset" = "y" ] || [ "$reset" = "yes" ] ; then - echo "Turn beacon telemetry ON" - sudo rm /home/pi/CubeSatSim/beacon_off > /dev/null 2>&1 - sudo systemctl restart transmit - # restart=1 - fi - + echo "Turn beacon telemetry ON" + sudo rm /home/pi/CubeSatSim/beacon_off > /dev/null 2>&1 + sudo systemctl restart transmit else - echo "Transmit beacon telemetry is on" -# echo -# echo "Do you want to turn beacon telemetry OFF (y/n) " -# read reset - reset="y" + echo "Transmit beacon telemetry is on" echo - if [ "$reset" = "y" ] || [ "$reset" = "yes" ] ; then - echo "Turn beacon telemetry OFF" - touch /home/pi/CubeSatSim/beacon_off - sudo systemctl restart transmit - # restart=1 - fi + echo "Turn beacon telemetry OFF" + touch /home/pi/CubeSatSim/beacon_off + sudo systemctl restart transmit fi sleep 3 fi diff --git a/direwolf/direwolf-pacsatsim-pwm-loopback.conf b/direwolf/direwolf-pacsatsim-pwm-loopback.conf new file mode 100644 index 00000000..0d4d022d --- /dev/null +++ b/direwolf/direwolf-pacsatsim-pwm-loopback.conf @@ -0,0 +1,20 @@ +ADEVICE shared_mic plughw:CARD=Loopback,DEV=0 +PTT GPIOD gpiochip0 17 +MYCALL AMSAT-12 +CHANNEL 0 +MODEM 1200 +##FULLDUP ON +##TXDELAY 15 +#FIX_BITS 1 AX25 + +# +DWAIT 0 +SLOTTIME 10 +PERSIST 63 +TXDELAY 1000 +#TXDELAY 100 +TXTAIL 10 +#TXTAIL 1 +FULLDUP OFF + +DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE diff --git a/direwolf/direwolf-pacsatsim.conf b/direwolf/direwolf-pacsatsim.conf index 87f09de1..b96fc68f 100644 --- a/direwolf/direwolf-pacsatsim.conf +++ b/direwolf/direwolf-pacsatsim.conf @@ -1,6 +1,9 @@ -ADEVICE plughw:CARD=Device,DEV=0 plughw:CARD=Headphones,DEV=0 -PTT GPIO 20 -MYCALL AMSAT CHANNEL 0 MODEM 1200 +DWAIT 0 +SLOTTIME 10 +PERSIST 63 +TXDELAY 1000 +TXTAIL 10 FULLDUP OFF +DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE diff --git a/groundstation/direwolf/direwolf-pacsat.conf b/groundstation/direwolf/direwolf-pacsat.conf index e526e272..3b9d337b 100644 --- a/groundstation/direwolf/direwolf-pacsat.conf +++ b/groundstation/direwolf/direwolf-pacsat.conf @@ -1,5 +1,9 @@ -MYCALL AMSAT -ADEVICE plughw:CARD=Loopback,DEV=1 plughw:CARD=Headphones,DEV=0 -PTT GPIO 20 +CHANNEL 0 +MODEM 1200 KISSPORT 8100 +AGWPORT 8002 +DWAIT 20 +SLOTTIME 300 +PERSIST 63 +TXDELAY 1000 FULLDUP OFF diff --git a/groundstation/pacsat-config.sh b/groundstation/pacsat-config.sh index 6a2ce55c..65b49fde 100755 --- a/groundstation/pacsat-config.sh +++ b/groundstation/pacsat-config.sh @@ -113,9 +113,9 @@ sudo killall -9 direwolf &>/dev/null echo if [ "$ANS" = "1" ] ; then - oldcallsign=$(grep -oP '(?<=bbsCallsign=).*(?=-)' /home/pi/PacSatGround/spacecraft/PacSatSim.properties) + oldcallsign=$(grep -oP '(?<=bbsCallsign=).*(?=-)' /home/pi/Desktop/PacsatGround/spacecraft/PacSatSim.properties ) else - oldcallsign=$(grep -oP '(?<=bbsCallsign=).*(?=-)' /home/pi/PacSatGroundLoop/spacecraft/PacSatSim.properties) + oldcallsign=$(grep -oP '(?<=bbsCallsign=).*(?=-)' /home/pi/Desktop/PacsatGround/spacecraft/PacSatSim.properties ) fi echo "Current value of remote PacSat callsign is" echo $oldcallsign @@ -131,9 +131,9 @@ sudo killall -9 direwolf &>/dev/null else if [ "$ANS" = "1" ] ; then - sudo sed -i "s/$oldcallsign/$callsign/g" /home/pi/PacSatGround/spacecraft/PacSatSim.properties + sudo sed -i "s/$oldcallsign/$callsign/g" /home/pi/Desktop/PacsatGround/spacecraft/PacSatSim.properties else - sudo sed -i "s/$oldcallsign/$callsign/g" /home/pi/PacSatGroundLoop/spacecraft/PacSatSim.properties + sudo sed -i "s/$oldcallsign/$callsign/g" /home/pi/Desktop/PacsatGround/spacecraft/PacSatSim.properties fi echo echo "Changing callsign to " @@ -152,8 +152,17 @@ sudo killall -9 direwolf &>/dev/null if [ "$ANS" = "1" ] ; then sudo rm -r /home/pi/PacSatGround + cd + sudo rm PacSatGround.zip + wget https://github.com/alanbjohnston/CubeSatSim/raw/refs/heads/master-b-p-s/spacecraft/PacSatGround_0.46o/PacSatGround.zip + unzip PacSatGround.zip -d PacSatGround + sudo rm PacSatGround.zip else sudo rm -r /home/pi/PacSatGroundLoop + sudo rm PacSatGround.zip + wget https://github.com/alanbjohnston/CubeSatSim/raw/refs/heads/master-b-p-s/spacecraft/PacSatGround_0.46o/PacSatGround.zip + unzip PacSatGround.zip -d PacSatGroundLoop + sudo rm PacSatGround.zip fi else diff --git a/groundstation/pacsat.sh b/groundstation/pacsat.sh index 9ffc9657..545dea57 100755 --- a/groundstation/pacsat.sh +++ b/groundstation/pacsat.sh @@ -1,21 +1,79 @@ #!/bin/bash -# script to auto decode packet using rtl_fm and Direwolf and run Pacsat Ground Station +# script to auto decode packets using Direwolf and FM TXC and run Pacsat Ground Station + +sudo pkill -f "/home/pi/CubeSatSim/groundstation/direwolf-pacsat-tmp.conf" loopback=0 vox=0 +safe=0 +card=0 +pwm=0 + if [ "$1" = "l" ] ; then loopback=1 - echo "PacSat Ground Station with Loopback" elif [ "$1" = "v" ] ; then - vox=1 - echo "PacSat Ground Station with Soundcard (VOX)" + vox=1 + +elif [ "$1" = "c" ] ; then + + card=1 + +else + + pwm=1 fi +if [[ $(arecord -l | grep "USB Audio Device") ]] ; then + echo "USB Sound Card detected" + soundcard=1 +else + echo "No USB Sound Card detected" + soundcard=0 +fi + +gpio -g mode 7 up +if [[ $(gpio -g read 7 | grep 0) ]] ; then + echo "TXC is present" + txc=1 +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 + +FILE=/home/pi/CubeSatSim/battery_saver +if [ -f "$FILE" ]; then + + safe=1 + +fi + +value=`cat /home/pi/CubeSatSim/sim.cfg` +echo "$value" > /dev/null +set -- $value + +callsign="$1" +frequency="$7e3" + +echo -n "Callsign is " +echo $callsign +echo -n "Transmit Frequency is " +echo $frequency +echo + if [ ! -d "/home/pi/PacSatGround" ] ; then mkdir /home/pi/PacSatGround @@ -77,73 +135,97 @@ sudo killall -9 CubicSDR &>/dev/null sudo killall -9 zenity &>/dev/null -echo - #sudo systemctl restart pacsatsim #sudo /etc/init.d/alsa-utils stop #sudo /etc/init.d/alsa-utils start - -#echo "Waiting 10 seconds for Pacsatsim to start" - -#sleep 10 - -#value=`cat /home/pi/CubeSatSim/sim.cfg` -#echo "$value" > /dev/null -#set -- $value - -#echo "Receive frequency is $8 MHz" -#echo "Transmit frequency is $7 MHz" -#echo -#echo "To change, quit and type CubeSatSim/config -F" -#echo - -#frequency="$8e6" - -#echo "Note that the 'Tuned to' frequency will be different from the chosen frequency due to the way SDRs work." - -#echo - -echo -echo "The Pacsat Ground Station is running on this Pi using FM receiver or RTL-SDR" -echo - -#cd /home/pi/Desktop/PacSatGround_0.46m_linux/ - -#setsid java -Xmx512M -jar PacSatGround.jar "/home/pi/PacSatGround" # removed & - -#direwolf -P+ -D1 -qd -dp -r 48000 -c /home/pi/CubeSatSim/groundstation/direwolf/direwolf-pacsat-loopback.conf -t 0 # & -#/usr/bin/x-terminal-emulator --geometry=120x40 -e "direwolf -P+ -D1 -qd -dp -r 48000 -c /home/pi/CubeSatSim/groundstation/direwolf/direwolf-pacsat-loopback.conf -t 0" - sudo usermod -a -G gpio pi -if [ "$loopback" = "1" ]; then -#/usr/bin/x-terminal-emulator --geometry=120x40 -e "/home/pi/CubeSatSim/groundstation/pacsat-df.sh" +if [ "$loopback" = "1" ] ; then echo "Using Audio Loopback" - /home/pi/CubeSatSim/groundstation/pacsat-d.sh & + ADEVICE="ADEVICE plughw:CARD=Loopback,DEV=1" + PTT="PTT GPIOD gpiochip0 17" -elif [ "$vox" = "1" ]; then +elif [ "$safe" = "1" ] ; then - echo "Using Soundcard Audio TX RX (VOX)" - /home/pi/CubeSatSim/groundstation/pacsat-dj.sh & + ADEVICE="ADEVICE shared_mic plughw:CARD=Loopback,DEV=0" + PTT="PTT GPIOD gpiochip0 17" -else + if [ ! "$txc" = "1" ] ; then + echo "Safe mode - battery saver won't work since no TXC present" + sleep 5 + elif [ ! "$soundcard" = "1" ] ; then + echo "Safe mode - battery saver won't work since no sound card present" + sleep 5 + else + echo "Safe mode - battery saver" + fi - echo "Using TXC FM Transceiver" - /home/pi/CubeSatSim/groundstation/pacsat-df.sh & +elif [ "$vox" = "1" ] ; then + ADEVICE="ADEVICE plughw:CARD=Device,DEV=0" + PTT="PTT GPIOD gpiochip0 17" + + if [ "$soundcard" = "1" ] ; then + echo "Using Soundcard Audio TX and RX (VOX, no PTT)" + else + echo "Soundcard Audio TX and RX (VOX, no PTT) will not work since no sound card present" + sleep 5 + fi + +elif [ "$pwm" = "1" ] ; then + + ADEVICE="ADEVICE shared_mic plughw:CARD=Headphones,DEV=0" + PTT="PTT GPIOD gpiochip0 -20" + + if [ ! "$txc" = "1" ] ; then + echo "FM TXC using Soundcard input (JP13), PWM output won't work since no TXC present" + sleep 5 + elif [ ! "$soundcard" = "1" ] ; then + echo "FM TXC using Soundcard input (JP13), PWM output won't work since no sound card present" + sleep 5 + else + echo "FM TXC using Soundcard input (JP13), PWM output" + fi + +else + + echo "FM TXC using Soundcard input (JP13) and output (JP14)" + ADEVICE="ADEVICE shared_mic plughw:CARD=Device,DEV=0" + PTT="PTT GPIOD gpiochip0 -20" + + if [ ! "$txc" = "1" ] ; then + echo "FM TXC using Soundcard input (JP13) and output (JP14) won't work since no TXC present" + sleep 5 + elif [ ! "$soundcard" = "1" ] ; then + echo "FM TXC using Soundcard input (JP13), output (JP14) won't work since no sound card present" + sleep 5 + else + echo "FM TXC using Soundcard input (JP13), output JP14" + fi + fi -# arecord -D plughw:CARD=Loopback,DEV=1 -f S16_LE -r 48000 -c 1 | csdr convert_s16_f | csdr gain_ff 14000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 435045 & -##arecord -D plughw:CARD=Loopback,DEV=1 -f S16_LE -r 48000 -c 1 | csdr convert_s16_f | csdr gain_ff 4000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 435045 & +DIREWOLF_CONF="/home/pi/CubeSatSim/groundstation/direwolf-pacsat-tmp.conf" -# echo "Don't close the direwolf window or the Pacsatsim will stop running." +echo "$ADEVICE" > $DIREWOLF_CONF +echo "MYCALL $callsign-1" >> $DIREWOLF_CONF +echo "$PTT" >> $DIREWOLF_CONF +cat /home/pi/CubeSatSim/groundstation/direwolf/direwolf-pacsat.conf >> $DIREWOLF_CONF + +echo +echo "$DIREWOLF_CONF" +echo +cat $DIREWOLF_CONF +echo + +direwolf -r 48000 -c $DIREWOLF_CONF -t 0 & cd /home/pi/Desktop/PacsatGround/ -if [ "$loopback" = "1" ]; then +if [ "$loopback" = "1" ] ; then setsid java -Xmx512M -jar PacSatGround.jar "/home/pi/PacSatGroundLoop" # removed & @@ -152,13 +234,6 @@ else setsid java -Xmx512M -jar PacSatGround.jar "/home/pi/PacSatGround" # removed & fi -#cd /home/pi/Desktop/PacSatGround_0.46m_linux/ - -#sudo setsid java -Xmx512M -jar PacSatGround.jar "/home/pi/PacSatGround" - -cd - -#sudo systemctl stop pacsatsim sleep 10 diff --git a/install b/install index 2492d91e..74a10384 100755 --- a/install +++ b/install @@ -170,6 +170,8 @@ if [[ $(grep 'bookworm' /etc/os-release) ]]; then # sudo sed -i 's/maxcpus=2/maxcpus=1/g' /boot/firmware/cmdline.txt # single core if Pi Zero 2 sudo sed -i 's/#dtparam=i2c_arm=on/dtparam=i2c_arm=on/g' /boot/firmware/config.txt + + sudo sed -i 's/#dtoverlay=vc4-fkms-v3d/dtoverlay=vc4-fkms-v3d/g' /boot/firmware/config.txt if [[ $(grep 'dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24' /boot/firmware/config.txt) ]]; then echo "dtoverlay=i2c-gpio already in /boot/firmware/config.txt" @@ -813,6 +815,10 @@ cd #fi +sed -i 's/quick_exec=0/quick_exec=1/' ~/.config/libfm/libfm.conf + +sudo apt install -y raspberrypi-ui-mods + if [ "$noreboot" = "0" ] ; then if [ $FLAG -eq 1 ]; then # Not sure if this is needed diff --git a/main.c b/main.c index a7b50540..2f1954a6 100644 --- a/main.c +++ b/main.c @@ -273,7 +273,7 @@ int main(int argc, char * argv[]) { } } } - +/* if ( mode == PACSAT) { FILE * pacsat_file = popen("sudo systemctl restart pacsatsim", "r"); pclose(pacsat_file); @@ -282,7 +282,7 @@ int main(int argc, char * argv[]) { FILE * pacsat_file = popen("sudo systemctl stop pacsatsim", "r"); pclose(pacsat_file); } - +*/ // Open telemetry file with STEM Payload Data telem_file = fopen("/home/pi/CubeSatSim/telem.txt", "a"); if (telem_file == NULL) diff --git a/pacsatsim.sh b/pacsatsim.sh index bf489175..78c952a8 100755 --- a/pacsatsim.sh +++ b/pacsatsim.sh @@ -4,6 +4,10 @@ loopback=0 vox=0 +safe=0 +card=0 +pwm=0 + if [ "$1" = "l" ] ; then loopback=1 @@ -11,9 +15,50 @@ if [ "$1" = "l" ] ; then elif [ "$1" = "v" ] ; then vox=1 + +elif [ "$1" = "c" ] ; then + + card=1 + +else + + pwm=1 fi +FILE=/home/pi/CubeSatSim/battery_saver +if [ -f "$FILE" ]; then + + safe=1 + +fi + +if [[ $(arecord -l | grep "USB Audio Device") ]] ; then + echo "USB Sound Card detected" + soundcard=1 +else + echo "No USB Sound Card detected" + soundcard=0 +fi + +gpio -g mode 7 up +if [[ $(gpio -g read 7 | grep 0) ]] ; then + echo "TXC is present" + txc=1 +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 + if [ ! -d "/home/pi/PacSat" ]; then echo "Setting up PacSatSim default configuration" @@ -49,6 +94,7 @@ echo "$value" > /dev/null set -- $value callsign="$1" +frequency="$7e3" echo "Configured callsign is " echo $callsign @@ -71,8 +117,6 @@ if [ ! "$callsign" = "$oldcallsign" ] ; then fi - - sudo /etc/init.d/alsa-utils stop sudo /etc/init.d/alsa-utils start @@ -141,25 +185,73 @@ echo sudo usermod -a -G gpio pi -if [ "$loopback" = "1" ]; then +if [ "$loopback" = "1" ] ; then echo "Using audio loopback" - sudo /home/pi/CubeSatSim/pacsatsim-d.sh & + ADEVICE="ADEVICE plughw:CARD=Loopback,DEV=0" + PTT="PTT GPIOD gpiochip0 17" + +# sudo /home/pi/CubeSatSim/pacsatsim-d.sh & + +# direwolf -P+ -D1 -qd -dp -r 48000 -c /home/pi/CubeSatSim/direwolf/direwolf-pacsatsim-loopback.conf -t 0 & + +elif [ "$safe" = "1" ] ; then + + echo "Safe mode - battery saver" +# sudo /home/pi/CubeSatSim/pacsatsim-d.sh & + + ADEVICE="ADEVICE shared_mic plughw:CARD=Loopback,DEV=0" + PTT="PTT GPIOD gpiochip0 17" + +# direwolf -P+ -D1 -qd -dp -r 48000 -c /home/pi/CubeSatSim/direwolf/direwolf-pacsatsim-pwm-loopback.conf -t 0 & + +# arecord -D plughw:CARD=Loopback,DEV=1 -f S16_LE -r 48000 -c 1 | csdr convert_s16_f | csdr gain_ff 4000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434900 & +# arecord -D plughw:CARD=Loopback,DEV=1 -f S16_LE -r 48000 -c 1 | csdr convert_s16_f | csdr gain_ff 4000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f $frequency & + elif [ "$vox" = "1" ]; then - echo "Using Soundcard Audio TX and RX (VOX)" - sudo /home/pi/CubeSatSim/pacsatsim-dj.sh & + echo "Using Soundcard Audio TX and RX (VOX, no PTT)" + ADEVICE="ADEVICE plughw:CARD=Device,DEV=0" + PTT="PTT GPIOD gpiochip0 17" +# sudo /home/pi/CubeSatSim/pacsatsim-dj.sh & + +# direwolf -P+ -D1 -qd -dp -r 48000 -c /home/pi/CubeSatSim/direwolf/direwolf-pacsatsim-jp14-half.conf -t 0 & + +elif [ "$pwm" = "1" ] ; then + + echo "FM TXC using Soundcard input (JP13), PWM output" + ADEVICE="ADEVICE shared_mic plughw:CARD=Headphones,DEV=0" + PTT="PTT GPIOD gpiochip0 -20" + +# direwolf -P+ -D1 -qd -dp -r 48000 -c /home/pi/CubeSatSim/direwolf/direwolf-pacsatsim-pwm.conf -t 0 & else - echo "Using TXC FM transceiver" - sudo /home/pi/CubeSatSim/pacsatsim-df.sh & + echo "FM TXC using Soundcard input (JP13) and output (JP14)" + ADEVICE="ADEVICE shared_mic plughw:CARD=Device,DEV=0" + PTT="PTT GPIOD gpiochip0 -20" +# direwolf -P+ -D1 -qd -dp -r 48000 -c /home/pi/CubeSatSim/direwolf/direwolf-pacsatsim-jp14.conf -t 0 & fi +DIREWOLF_CONF="/home/pi/CubeSatSim/direwolf-pacsatsim-tmp.conf" + +echo "$ADEVICE" > $DIREWOLF_CONF +echo "MYCALL $callsign-1" >> $DIREWOLF_CONF +echo "$PTT" >> $DIREWOLF_CONF +cat /home/pi/CubeSatSim/direwolf/direwolf-pacsatsim.conf >> $DIREWOLF_CONF + +echo +echo "$DIREWOLF_CONF" +echo +cat $DIREWOLF_CONF +echo + +direwolf -P+ -D1 -qd -dp -r 48000 -c $DIREWOLF_CONF -t 0 & + # arecord -D plughw:CARD=Loopback,DEV=1 -f S16_LE -r 48000 -c 1 | csdr convert_s16_f | csdr gain_ff 14000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434900 & -## arecord -D plughw:CARD=Loopback,DEV=1 -f S16_LE -r 48000 -c 1 | csdr convert_s16_f | csdr gain_ff 4000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434900 & +## arecord -D plughw:CARD=Loopback,DEV=1 -f S16_LE -r 48000 -c 1 | csdr convert_s16_f | csdr gain_ff 4000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434900 & ## echo "Don't close the direwolf window or the Pacsatsim will stop running." diff --git a/spacecraft/PacSatGround_0.46o/PacSatGround.zip b/spacecraft/PacSatGround_0.46o/PacSatGround.zip new file mode 100644 index 00000000..900415dc Binary files /dev/null and b/spacecraft/PacSatGround_0.46o/PacSatGround.zip differ diff --git a/transmit.py b/transmit.py index a1ac0991..5ac26bb3 100644 --- a/transmit.py +++ b/transmit.py @@ -26,7 +26,7 @@ def input(pin): # print(f"Command run was: {query}") # print("Sucess!") # print(f"Output of the command (stdout): {result.stdout}") - print(f"{command}: {result.stdout}") +# print(f"{command}: {result.stdout}") return int(result.stdout) except subprocess.CalledProcessError as e: # print(f"Command failed with return code: {e.returncode}") @@ -324,7 +324,6 @@ if __name__ == "__main__": print("Can't open .mode file, defaulting to FSK") print("Mode is: ") print(mode) -# system("sudo systemctl stop pacsatsim") try: file = open("/home/pi/CubeSatSim/beacon_off") @@ -336,6 +335,9 @@ if __name__ == "__main__": print("Can't open beacon_off file, defaulting to False") print("Command_tx: ") print(command_tx) + + if (mode != "p") or (command_tx == False): + system("sudo systemctl stop pacsatsim") try: file = open("/home/pi/CubeSatSim/command_count.txt", "r") @@ -551,20 +553,43 @@ if __name__ == "__main__": print("Pacsat Ground Station") else: print("Pacsat") -# system("sudo systemctl restart pacsatsim") + if (command_tx == True): + system("sudo systemctl restart pacsatsim") + print("Starting PacSatSim") output(txLed, 0) print("0") - + rpitx = "arecord -D plughw:CARD=Loopback,DEV=1 -f S16_LE -r 48000 -c 1 | csdr convert_s16_f | csdr gain_ff 4000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f " + tx + "e3 > /dev/null 2>&1 &" + stop_rpitx = "sudo killall -9 rpitx && sudo killall -9 arecord && sudo rpitx -m RF -f 434.9e3 > /dev/null 2>&1" + if not txc: + system(stop_rpitx) + system(rpitx) + print("Safe Mode!") while (True): - sleep(0.1) - while (input(ptt) != 0): - sleep(0.2) - output(txLed, 1) - print("1") - while (input(ptt) != 1): - sleep(0.2) - output(txLed, 0) - print("0") + if (txc): + sleep(0.1) + while (input(ptt) != 0): + sleep(0.2) + output(txLed, 1) +# print("1") + while (input(ptt) != 1): + sleep(0.2) + output(txLed, 0) +# print("0") + else: +# sleep(0.1) + while (input(17) == 0): + sleep(0.05) +## system(rpitx) + output(txLed, 1) +# print("1") + while (input(17) == 1): + sleep(0.05) +## system(stop_rpitx) + output(txLed, 0) +# print("0") + +# sleep(10) + else: print("Transmit APRS Commands") system("sudo systemctl stop command")