Merge pull request #92 from alanbjohnston/update

Update
pull/111/head
alanbjohnston 5 years ago committed by GitHub
commit 22899c3cc1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,11 +1,11 @@
all: DEBUG_BEHAVIOR=
all: libax5043.a
all: radioafsk
all: cubesatsim
all: telem
debug: DEBUG_BEHAVIOR = -DDEBUG_LOGGING
debug: libax5043.a
debug: radioafsk
debug: cubesatsim
debug: telem
rebuild: clean
@ -20,7 +20,7 @@ clean:
rm -f testax5043tx
rm -f testax50432freq
rm -f testax5043init
rm -f radioafsk
rm -f cubesatsim
rm -f testafsktx
rm -f libax5043.a
rm -f */*.o
@ -78,11 +78,11 @@ testafsktx: afsktx/ax5043.o
testafsktx: afsktx/main.o
gcc -std=gnu99 $(DEBUG_BEHAVIOR) -o testafsktx -Wall -Wextra -L./ afsktx/ax25.o afsktx/ax5043.o afsktx/main.o -lwiringPi -lax5043
radioafsk: libax5043.a
radioafsk: afsk/ax25.o
radioafsk: afsk/ax5043.o
radioafsk: afsk/main.o
gcc -std=gnu99 $(DEBUG_BEHAVIOR) -o radioafsk -Wall -Wextra -L./ afsk/ax25.o afsk/ax5043.o afsk/main.o -lwiringPi -lax5043 -lm
cubesatsim: libax5043.a
cubesatsim: afsk/ax25.o
cubesatsim: afsk/ax5043.o
cubesatsim: afsk/main.o
gcc -std=gnu99 $(DEBUG_BEHAVIOR) -o cubesatsim -Wall -Wextra -L./ afsk/ax25.o afsk/ax5043.o afsk/main.o -lwiringPi -lax5043 -lm
telem: afsk/telem.o
gcc -std=gnu99 $(DEBUG_BEHAVIOR) -o telem -Wall -Wextra -L./ afsk/telem.o -lwiringPi

@ -17,6 +17,7 @@ The other option is to start with any Raspberry Pi OS (Rasbian) image and run th
- pi-power-button
- Direwolf
- rpitx
- cpulimit
- python3-pip
- python-smbus
@ -38,11 +39,11 @@ To get the software follow these steps:
`git checkout master`
You are now ready to install the software. In the following command, CALLSIGN is your amateur radio callsign in all capitals, if you have one. If you don't you can put some other word which will be transmitted as a CW ID.
You are now ready to install the software using this script in the CubeSatSim directory:
`./install.sh CALLSIGN`
`./install`
The installation script will run for quite a while. It will prompt you if you want to modify /boot/config.txt file. Type a `y` and the script will complete. You will need to reboot.
The installation script will run for quite a while. You will get prompted for your amateur radio callsign in all capitals, if you have one. If you don't you can put some other word which will be transmitted as a CW ID. You will also be prompted for your latitude and longitude for APRS packets. The script will prompt you if you want to modify /boot/config.txt file. Type a `y` and the script will complete. You will need to reboot.
See the Wiki for more details about the CubeSatSim https://github.com/alanbjohnston/CubeSatSim/wiki

File diff suppressed because it is too large Load Diff

@ -10,6 +10,11 @@
#include <string.h>
#include <wiringPiI2C.h>
#include <wiringPi.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/socket.h>
#define PLUS_X 0
#define PLUS_Y 1
@ -27,13 +32,16 @@ int test_i2c_bus(int bus);
const char pythonCmd[] = "python3 /home/pi/CubeSatSim/python/voltcurrent.py ";
char pythonStr[100], pythonConfigStr[100], busStr[10];
int map[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
FILE *sopen(const char *program);
int debug = OFF;
int main(int argc, char *argv[]) {
if (argc > 1) {
;
if ( * argv[1] == 'd') {
debug = ON;
}
}
wiringPiSetup ();
printf("\n");
@ -48,9 +56,7 @@ int main(int argc, char *argv[]) {
map[BAT] = BUS;
map[PLUS_Z] = BAT;
map[MINUS_Z] = PLUS_Z;
snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(0));
printf("New Bus String: %s \n", busStr);
/*
if (access("/dev/i2c-0", W_OK | R_OK) >= 0) { // Test if I2C Bus 0 is present
printf("/dev/i2c-0 is present\n\n");
@ -90,11 +96,7 @@ int main(int argc, char *argv[]) {
printf("vB4 Present\n");
map[BAT] = BUS;
map[BUS] = BAT;
snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(0));
printf("New Bus String: %s \n", busStr);
// strcpy(busStr,"1 0");
}
else
@ -104,13 +106,12 @@ int main(int argc, char *argv[]) {
if (digitalRead(26) != HIGH)
{
printf("vB5 Present\n"); // Don't print normal board detection
if (debug == ON)
printf("vB5 or later present\n"); // Don't print normal board detection
map[MINUS_X] = MINUS_Y;
map[PLUS_Z] = MINUS_X;
map[MINUS_Y] = PLUS_Z;
snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(3));
printf("New Bus String: %s \n", busStr);
/*
if (test_i2c_b0) != OFF)
strcpy(busStr,"1 ");
@ -183,10 +184,7 @@ int main(int argc, char *argv[]) {
map[BAT] = BUS;
map[PLUS_Z] = BAT;
map[MINUS_Z] = PLUS_Z;
snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(0));
printf("New Bus String: %s \n", busStr);
/*
if (access("/dev/i2c-0", W_OK | R_OK) >= 0) { // Test if I2C Bus 0 is present
printf("/dev/i2c-0 is present\n\n");
@ -225,21 +223,29 @@ int main(int argc, char *argv[]) {
strcpy(pythonStr, pythonCmd);
strcat(pythonStr, busStr);
strcat(pythonConfigStr, pythonStr);
strcat(pythonConfigStr, " c");
strcat(pythonConfigStr, " s");
FILE* file1 = popen(pythonConfigStr, "r");
char cmdbuffer[1000];
FILE *file1 = sopen(pythonConfigStr); // try new function
fgets(cmdbuffer, 1000, file1);
if (debug == ON)
{
printf("New Bus String: %s \n", busStr);
fprintf(stderr, "pythonConfigStr: %s \n", pythonConfigStr);
fprintf(stderr, "pythonStr result: %s\n", cmdbuffer);
}
// FILE* file1 = popen(pythonConfigStr, "r");
// fgets(cmdbuffer, 1000, file1);
// printf("pythonStr result: %s\n", cmdbuffer);
pclose(file1);
// sclose(file1);
int count1;
char *token;
FILE* file = popen(pythonStr, "r");
fgets(cmdbuffer, 1000, file);
// FILE* file = popen(pythonStr, "r");
// fgets(cmdbuffer, 1000, file);
// printf("result: %s\n", cmdbuffer);
pclose(file);
// pclose(file);
const char space[2] = " ";
token = strtok(cmdbuffer, space);
@ -290,7 +296,7 @@ int test_i2c_bus(int bus)
char busS[5];
snprintf(busS, 5, "%d", bus);
strcat (busDev, busS);
printf("Bus Dev String: %s \n", busDev);
// printf("Bus Dev String: %s \n", busDev);
if (access(busDev, W_OK | R_OK) >= 0) { // Test if I2C Bus is present
// printf("bus is present\n\n");
@ -320,3 +326,31 @@ int test_i2c_bus(int bus)
}
return(output); // return bus number or -1 if there is a problem with the bus
}
// code by https://stackoverflow.com/questions/25161377/open-a-cmd-program-with-full-functionality-i-o/25177958#25177958
FILE *sopen(const char *program)
{
int fds[2];
pid_t pid;
if (socketpair(AF_UNIX, SOCK_STREAM, 0, fds) < 0)
return NULL;
switch(pid=vfork()) {
case -1: /* Error */
close(fds[0]);
close(fds[1]);
return NULL;
case 0: /* child */
close(fds[0]);
dup2(fds[1], 0);
dup2(fds[1], 1);
close(fds[1]);
execl("/bin/sh", "sh", "-c", program, NULL);
_exit(127);
}
/* parent */
close(fds[1]);
return fdopen(fds[0], "r+");
}

@ -15,8 +15,7 @@ int RXLED = 17; // The RX LED has a defined Arduino pin
int greenLED = 9;
int blueLED = 8;
int Sensor1 = 0;
int Sensor2 = 0;
float Sensor3 = 0;
float Sensor2 = 0;
void eeprom_word_write(int addr, int val);
short eeprom_word_read(int addr);
int first_time = true;
@ -25,7 +24,7 @@ void setup() {
Serial.begin(9600); // Serial Monitor for testing
Serial1.begin(9600); // Pi UART
Serial1.begin(115200); // Pi UART faster speed
Serial.println("Starting!");
@ -81,6 +80,8 @@ void setup() {
Serial.println(((float)eeprom_word_read(2)) / 100.0, DEC);
Serial.println(((float)eeprom_word_read(3)) / 100.0, DEC);
}
pinMode(greenLED, OUTPUT);
pinMode(blueLED, OUTPUT);
}
void loop() {
@ -131,9 +132,7 @@ void loop() {
Serial.print(" XS ");
Serial.print(Sensor1);
Serial.print(" ");
Serial.print(Sensor2);
Serial.print(" ");
Serial.println(Sensor3);
Serial.println(Sensor2);
float rotation = sqrt(mpu6050.getGyroX()*mpu6050.getGyroX() + mpu6050.getGyroY()*mpu6050.getGyroY() + mpu6050.getGyroZ()*mpu6050.getGyroZ());
float acceleration = sqrt(mpu6050.getAccX()*mpu6050.getAccX() + mpu6050.getAccY()*mpu6050.getAccY() + mpu6050.getAccZ()*mpu6050.getAccZ());
@ -199,9 +198,7 @@ void loop() {
Serial1.print(" XS ");
Serial1.print(Sensor1);
Serial1.print(" ");
Serial1.print(Sensor2);
Serial1.print(" ");
Serial1.println(Sensor3);
Serial1.println(Sensor2);
float rotation = sqrt(mpu6050.getGyroX()*mpu6050.getGyroX() + mpu6050.getGyroY()*mpu6050.getGyroY() + mpu6050.getGyroZ()*mpu6050.getGyroZ());
float acceleration = sqrt(mpu6050.getAccX()*mpu6050.getAccX() + mpu6050.getAccY()*mpu6050.getAccY() + mpu6050.getAccZ()*mpu6050.getAccZ());
@ -271,7 +268,7 @@ void blink(int length)
#if defined __AVR_ATmega32U4__
digitalWrite(RXLED, HIGH); // set the RX LED OFF
TXLED0; //TX LED is not tied to a normally controlled pin so a macro is needed, turn LED OFF
TXLED0; //TX LED macro to turn LED ON
#endif
}

311
config

@ -0,0 +1,311 @@
#!/bin/bash
# echo $1
if [ "$2" = "-n" ]; then
norestart=1
else
norestart=0
fi
if [ "$1" = "" ]; then
value=`cat /home/pi/CubeSatSim/.mode`
echo "$value" > /dev/null
set -- $value
if [ "$1" = "ARG1=a" ]; then
echo "APRS mode is set"
elif [ "$1" = "ARG1=f" ]; then
echo "FSK mode is set"
elif [ "$1" = "ARG1=b" ]; then
echo "BPSK mode is set"
elif [ "$1" = "ARG1=s" ]; then
echo "SSTV mode is set"
else
echo
fi
echo
echo -e "Current sim.cfg configuration file:"
echo
value=`cat /home/pi/CubeSatSim/sim.cfg`
echo "$value" > /dev/null
set -- $value
echo $1 $2 $3 $4 $5
echo
if [ "$sim" = "y" ] ; then
sim="yes"
echo "Simulated Telemetry is ON"
else
sim="no"
echo "Simulated Telemetry is OFF"
fi
echo
echo "To change, include an OPTION"
echo
set -- "-h"
fi
if [ "$1" = "-i" ]; then
echo "Restarting CubeSatSim"
sudo systemctl restart cubesatsim
exit
elif [ "$1" = "-a" ]; then
echo "changing CubeSatSim to AFSK mode"
sudo echo "ARG1=a" > /home/pi/CubeSatSim/.mode
sudo systemctl restart cubesatsim
exit
elif [ "$1" = "-f" ]; then
echo "changing CubeSatSim to FSK mode"
sudo echo "ARG1=f" > /home/pi/CubeSatSim/.mode
sudo systemctl restart cubesatsim
exit
elif [ "$1" = "-b" ]; then
echo "changing CubeSatSim to BPSK mode"
sudo echo "ARG1=b" > /home/pi/CubeSatSim/.mode
sudo systemctl restart cubesatsim
exit
elif [ "$1" = "-s" ]; then
echo "changing CubeSatSim to SSTV mode"
sudo echo "ARG1=s" > /home/pi/CubeSatSim/.mode
sudo systemctl restart cubesatsim
exit
elif [ "$1" = "-h" ]; then
echo "config OPTION"
echo
echo "Changes CubeSatSim mode, resets, or modifies configuration file"
echo
echo " -h This help info"
echo " -a Change to AFSK/APRS mode"
echo " -f Change to FSK/DUV mode"
echo " -b Change to BPSK mode"
echo " -s Change to SSTV mode"
echo " -i Restarts CubeSatsim software"
echo " -c Change the CALLSIGN in the configuration file sim.cfg"
echo " -m Change the Simulated Telemetry setting in sim.cfg"
echo " -r Change the Resets Count in the configuration file sim.cfg"
echo " -l Change the Latitude and Longitude in the configuration file sim.cfg"
echo " Only used for APRS telemetry"
echo
exit
elif [ "$1" = "-m" ]; then
echo
echo "Editing the Simulated Telemetry setting in"
echo "the configuration file for CubeSatSim"
echo
value=`cat /home/pi/CubeSatSim/sim.cfg`
echo "$value" > /dev/null
set -- $value
if [ "$5" = "yes" ]; then
echo "Simualted Telemetry is ON"
else
echo "Simualted Telemetry is OFF"
fi
echo
# echo $1 $2 $3 $4
echo "Do you want Simulated Telemetry ON (y/n) "
read sim
echo
if [ "$sim" = "y" ] ; then
sim="yes"
echo "Simulated Telemetry is ON"
else
sim="no"
echo "Simulated Telemetry is OFF"
fi
echo
echo -e "\nCubeSatSim configuraation sim.cfg file updated to: \n"
echo
echo $1 $2 $3 $4 $sim
echo $1 $2 $3 $4 $sim > /home/pi/CubeSatSim/sim.cfg
echo
echo "Restarting CubeSatSim with new configuraation file"
echo
sudo systemctl restart cubesatsim
elif [ "$1" = "-c" ]; then
echo
echo "Editing the CALLSIGN in the"
echo "configuration file for CubeSatSim"
echo
echo "Return keeps current value."
# echo -e "Current sim.cfg configuration file:"
# echo
value=`cat /home/pi/CubeSatSim/sim.cfg`
echo "$value" > /dev/null
set -- $value
echo "Current value of CALLSIGN is"
echo $1
echo
# echo $1 $2 $3 $4 $5
echo "Enter callsign in all capitals: "
read callsign
if [ -z $callsign ] ; then
callsign="$1"
echo "Keeping value of" $callsign
norestart=1
else
echo -e "\nCubeSatSim configuraation sim.cfg file updated to: \n"
echo $callsign $2 $3 $4 $5
echo $callsign $2 $3 $4 $5 > /home/pi/CubeSatSim/sim.cfg
fi
if [ "$norestart" = "1" ]; then
echo
else
echo
echo "Restarting CubeSatSim with new configuraation file"
echo
sudo systemctl restart cubesatsim
fi
elif [ "$1" = "-r" ]; then
echo
echo "Editing the Reset Count in the"
echo "configuration file for CubeSatSim"
echo
echo "Return keeps current value."
# echo -e "Current sim.cfg configuration file:"
# echo
value=`cat /home/pi/CubeSatSim/sim.cfg`
echo "$value" > /dev/null
set -- $value
echo
echo "Current value of Reset Count is"
echo $2
echo
# echo $1 $2 $3 $4 $5
echo -e "Enter Reset Count (integer): "
read resets
if [ -z $resets ] ; then
resets="$2"
echo "Keeping value of" $resets
fi
if ! [[ $resets =~ ^[0-9]+$ ]] ; then
echo "Error: not an integer!"
resets="$2"
echo "Keeping value of" $resets
norestart=1
else
echo -e "\nCubeSatSim configuraation sim.cfg file updated to: \n"
echo $1 $resets $3 $4 $5
echo $1 $resets $3 $4 $5 > /home/pi/CubeSatSim/sim.cfg
fi
if [ "$norestart" = "1" ]; then
echo
else
echo
echo "Restarting CubeSatSim with new configuraation file"
echo
sudo systemctl restart cubesatsim
fi
elif [ "$1" = "-l" ]; then
echo
echo "Editing latitude and longitude in the"
echo "configuration file for CubeSatSim"
echo "(Only used for APRS telemetry)"
echo
echo "Return keeps current value."
# echo -e "Current sim.cfg configuration file:"
# echo
value=`cat /home/pi/CubeSatSim/sim.cfg`
echo "$value" > /dev/null
set -- $value
echo
echo "Current value of latitude is"
echo $3
echo
# echo $1 $2 $3 $4 $5
echo -e "Enter latitude (decimal degrees, positive is north): "
read lat
if [ -z $lat ] ; then
lat="$3"
echo "Keeping value of" $lat
fi
if ! [[ $lat =~ ^[+-]?[0-9]+([.][0-9]+)?$ ]] ; then
echo "Error: not a number!"
lat="$3"
echo "Keeping value of" $lat
fi
echo
echo "Current value of longitude is"
echo $4
echo
echo -e "Enter longitude (decimal degrees, positive is east): "
read long
if [ -z $long ] ; then
long="$4"
echo "Keeping value of" $long
fi
if ! [[ $long =~ ^[+-]?[0-9]+([.][0-9]+)?$ ]] ; then
echo "Error: not a number!"
long="$4"
echo "Keeping value of" $long
fi
echo -e "\nCubeSatSim configuraation sim.cfg file updated to: \n"
echo $1 $2 $lat $long $5
echo $1 $2 $lat $long $5 > /home/pi/CubeSatSim/sim.cfg
if [ "$norestart" = "1" ]; then
echo
else
echo
echo "Restarting CubeSatSim with new configuraation file"
echo
sudo systemctl restart cubesatsim
fi
fi
# sudo systemctl restart cubesatsim

@ -13,15 +13,16 @@ fi
if [[ ("$1" = "a" ) || (("$1" = "c") && ("$(($y %4))" = 3)) ]]; then
echo "Mode is continuous AFSK"
/home/pi/CubeSatSim/radioafsk afsk
/home/pi/CubeSatSim/cubesatsim afsk
elif [[ ("$1" = "b" ) || (("$1" = "c") && ("$(($y %4))" = 1)) ]]; then
echo "Mode is continuous BPSK"
/home/pi/CubeSatSim/radioafsk bpsk
sudo cpulimit -l 2.5 -b -P cubesatsim
/home/pi/CubeSatSim/cubesatsim bpsk
elif [[ ("$1" = "s" ) || (("$1" = "c") && ("$(($y %4))" = 2)) ]]; then
echo "Mode is continuous SSTV"
while true; do sleep 5; done
else
echo "Mode is continuous FSK"
/home/pi/CubeSatSim/radioafsk fsk
/home/pi/CubeSatSim/cubesatsim fsk
fi

@ -0,0 +1,168 @@
#!/bin/bash
echo -e "\ninstallation script for CubeSatSim\n"
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo apt-get install -y wiringpi git libasound2-dev i2c-tools cpulimit python-picamera python3-picamera build-essential libgd-dev libmagic-dev
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
cd
sudo apt install -y python3-pip python-smbus
sudo pip3 install --upgrade setuptools
sudo pip3 install adafruit-blinka RPI.GPIO adafruit-extended-bus adafruit-circuitpython-ina219
cd ~/CubeSatSim
git pull
make debug
FILE=/home/pi/CubeSatSim/.mode
if [ -f "$FILE" ]; then
echo "$FILE exists."
else
echo "creating $FILE"
echo "ARG1=f" > .mode
fi
FILE=/home/pi/CubeSatSim/sim.cfg
if [ -f "$FILE" ]; then
echo "$FILE exists."
else
echo "creating $FILE"
echo "AMSAT 1 0.0 0.0" > /home/pi/CubeSatSim/sim.cfg
fi
cd
git clone https://github.com/alanbjohnston/direwolf.git
cd direwolf
make -j
sudo make install
make install-rpi
cd
git clone https://github.com/alanbjohnston/pi-power-button.git
cd pi-power-button
./script/install
cd
git clone https://github.com/alanbjohnston/PiSSTVpp.git
cd PiSSTVpp
make pisstvpp
cd
git clone https://github.com/alanbjohnston/rpitx.git
cd rpitx
./install.sh
cd
sudo cp ~/CubeSatSim/systemd/cubesatsim.service /etc/systemd/system/cubesatsim.service
sudo systemctl enable cubesatsim
sudo cp ~/CubeSatSim/systemd/rpitx.service /etc/systemd/system/rpitx.service
sudo systemctl enable rpitx
sudo cp /boot/config.txt /boot/config.txt.0
sudo cp /boot/cmdline.txt /boot/cmdline.txt.0
sudo raspi-config nonint do_i2c 0
sudo raspi-config nonint do_camera 0
#if [ "$1" = "u" ]; then
#fi
sudo sed -i 's/console=serial0,115200 //g' /boot/cmdline.txt
sudo sed -i 's/#dtparam=i2c_arm=on/dtparam=i2c_arm=on/g' /boot/config.txt
if [[ $(grep 'dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24' /boot/config.txt) ]]; then
echo "dtoverlay=i2c-gpio already in /boot/config.txt"
else
echo "adding dtoverlay=i2c-gpio to /boot/config.txt"
sudo sh -c 'echo "\ndtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24" >> /boot/config.txt'
fi
if [[ $(grep 'enable_uart=1' /boot/config.txt) ]]; then
echo "enable_uart=1 already in /boot/config.txt"
else
echo "adding enable_uart=1 to /boot/config.txt"
sudo sh -c 'echo "\nenable_uart=1" >> /boot/config.txt'
fi
if [[ $(grep 'dtoverlay=disable-bt' /boot/config.txt) ]]; then
echo "dtoverlay=disable-bt already in /boot/config.txt"
else
echo "adding dtoverlay=disable-bt to /boot/config.txt"
sudo sh -c 'echo "\ndtoverlay=disable-bt" >> /boot/config.txt'
fi
if [[ $(grep 'dtoverlay=dwc2' /boot/config.txt) ]]; then
echo "dtoverlay=dwc2 aalready in /boot/config.txt"
else
echo "adding dtoverlay=dwc2 to /boot/config.txt"
sudo sh -c 'echo "\ndtoverlay=dwc2" >> /boot/config.txt'
fi
if [[ $(grep 'modules-load=dwc2,g_ether' /boot/cmdline.txt) ]]; then
echo "modules-load=dwc2,g_ether already in /boot/cmdline.txt"
else
echo "adding modules-load=dwc2,g_ether to /boot/cmdline.txt"
sudo sed -i 's/ rootwait/ rootwait modules-load=dwc2,g_ether/g' /boot/cmdline.txt
fi
CubeSatSim/config -c -n
CubeSatSim/config -l -n
echo "Would you like to reboot to complete the installation (y/n)?"
read -r ANS
if [ "$ANS" = "y" ]; then
sudo reboot now
else
echo "The CubeSatSim software will start next time you reboot"
fi

9
log

@ -0,0 +1,9 @@
#!/bin/bash
echo -e "\nLog file script for CubeSatSim\n"
sudo journalctl -u cubesatsim > log.txt
cat log.txt
echo -e "\nLog file also saved as /home/pi/CubeSatSim/log.txt"

@ -1,66 +1,354 @@
"""Sample code and test for adafruit_in219"""
# Reads all voltage and current sensors for two I2C buses
import time
import sys
#import board
import busio
from adafruit_extended_bus import ExtendedI2C as I2C
from adafruit_ina219 import INA219
from adafruit_ina219 import ADCResolution, BusVoltageRange
if __name__ == "__main__":
# print 'Length: ', len(sys.argv)
buses = [1, 3] # default I2C buses
config = False
single = False
one = two = three = four = five = six = seven = eight = 0
if (len(sys.argv)) > 1:
# print("There are arguments!")
# print("There are arguments!", file=sys.stderr)
# if (('a' == sys.argv[1]) or ('afsk' in sys.argv[1])):
# print(sys.argv[1])
buses[0] = int(sys.argv[1], base=10)
if (len(sys.argv)) > 2:
buses[1] = int(sys.argv[2], base=10)
if (len(sys.argv)) > 3:
if sys.argv[3] == "c":
config = True
from adafruit_ina219 import ADCResolution, BusVoltageRange
if sys.argv[3] == "s":
single = True
# print(buses[0])
# print(buses[1])
addresses = [0x40, 0x41, 0x44, 0x45] #INA219 addresses on the bus
# print("buses: ", buses, " addr: ", addresses)
for x in buses:
try:
i2c_bus = I2C(x) # Device is /dev/i2c-x
for y in addresses:
# print(x,y)
try:
# print("buses: ", buses, " addr: ", addresses, file=sys.stderr)
# config
# for x in buses:
# try:
# i2c_bus = I2C(x) # Device is /dev/i2c-x
# for y in addresses:
# print(x,y)
# try:
# Create library object using Extended Bus I2C port
# print("bus: ", x, " addr: ", y)
if x == 0 and y == 0x45:
# if x == 0 and y == 0x45:
# print("Reading INA219 in MoPower Board")
i2c_bus = I2C(1)
ina219 = INA219(i2c_bus, 0x4a)
else:
ina219 = INA219(i2c_bus, y)
# i2c_bus = I2C(1)
# ina219 = INA219(i2c_bus, 0x4a)
# else:
# ina219 = INA219(i2c_bus, y)
# print("ina219 test")
if config:
# print("Configuring")
# optional : change configuration to use 32 samples averaging for both bus voltage and shunt voltage
ina219.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
ina219.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
# ina219.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
# ina219.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
# optional : change voltage range to 16V
ina219.bus_voltage_range = BusVoltageRange.RANGE_16V
# ina219.bus_voltage_range = BusVoltageRange.RANGE_16V
# except:
# print("Python Error 2", file=sys.stderr, flush=True)
# except:
# print("Python Error 1", file=sys.stderr, flush=True)
# No try checking yet
# if buses[0] == 0 and addresses[0] == 0x45:
# print("Reading INA219 in MoPower Board")
# ina219_one = INA219(I2C(1), 0x4a)
# else:
if (buses[0] != -1):
try:
i2c_one = I2C(buses[0])
try:
ina219_one = INA219(i2c_one, addresses[0])
ina219_one.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_one.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_one.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
one = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
one = 0
try:
ina219_two = INA219(i2c_one, addresses[1])
ina219_two.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_two.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_two.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
two = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
two = 0
try:
ina219_three = INA219(i2c_one, addresses[2])
ina219_three.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_three.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_three.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
three = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
three = 0
try:
ina219_four= INA219(i2c_one, addresses[3])
ina219_four.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_four.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_four.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
four = 1
except:
four = 0
# print("Python Error 3", file=sys.stderr, flush=True)
except:
print("Python Error 5", file=sys.stderr, flush=True)
if (buses[1] != -1):
try:
i2c_two = I2C(buses[1])
# print(i2c_two)
try:
ina219_five = INA219(i2c_two, addresses[0])
ina219_five.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_five.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_five.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
five = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
five = 0
try:
ina219_six = INA219(i2c_two, addresses[1])
ina219_six.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_six.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_six.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
six = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
six = 0
try:
ina219_seven = INA219(i2c_two, addresses[2])
ina219_seven.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_seven.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_seven.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
seven = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
seven = 0
try:
ina219_eight = INA219(i2c_two, addresses[3])
ina219_eight.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_eight.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_eight.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
eight = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
eight = 0
except:
print("Python Error 5", file=sys.stderr, flush=True)
while True:
error = 0
try:
time.sleep(0.01)
print("{:6.3f} ".format(ina219_one.bus_voltage), "{:6.3f} ".format(ina219_one.current) , end = '')
except:
try:
ina219_one = INA219(i2c_one, addresses[0])
ina219_one.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_one.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_one.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
print("{:6.3f} ".format(ina219_one.bus_voltage), "{:6.3f} ".format(ina219_one.current) , end = '')
error = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
print("{:6.3f} ".format(0), "{:6.3f} ".format(0), end = '')
try:
time.sleep(0.01)
print("{:6.3f} ".format(ina219_two.bus_voltage), "{:6.3f} ".format(ina219_two.current) , end = '')
except:
try:
ina219_two = INA219(i2c_one, addresses[1])
ina219_two.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_two.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_two.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
print("{:6.3f} ".format(ina219_two.bus_voltage), "{:6.3f} ".format(ina219_two.current) , end = '')
error = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
print("{:6.3f} ".format(0), "{:6.3f} ".format(0), end = '')
try:
time.sleep(0.01)
print("{:6.3f} ".format(ina219_three.bus_voltage), "{:6.3f} ".format(ina219_three.current) , end = '')
except:
try:
ina219_three = INA219(i2c_one, addresses[2])
ina219_three.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_three.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_three.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
print("{:6.3f} ".format(ina219_three.bus_voltage), "{:6.3f} ".format(ina219_three.current) , end = '')
error = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
print("{:6.3f} ".format(0), "{:6.3f} ".format(0), end = '')
try:
time.sleep(0.01)
print("{:6.3f} ".format(ina219_four.bus_voltage), "{:6.3f} ".format(ina219_four.current) , end = '')
except:
try:
ina219_four= INA219(i2c_one, addresses[3])
ina219_four.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_four.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_four.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
print("{:6.3f} ".format(ina219_four.bus_voltage), "{:6.3f} ".format(ina219_four.current) , end = '')
error = 1
bus_voltage = ina219.bus_voltage # voltage on V- (load side)
# shunt_voltage = ina219.shunt_voltage # voltage between V+ and V- across the shunt
current = ina219.current # current in mA
if x == 0 and y == 0x45:
current = current * 10
# INA219 measure bus voltage on the load side. So PSU voltage = bus_voltage + shunt_voltage
# print("{:6.3f}".format(bus_voltage + shunt_voltage))
print("{:6.3f} ".format(bus_voltage), "{:6.3f} ".format(current) , end = '')
except:
print("{:6.3f} ".format(0), "{:6.3f} ".format(0), end = '')
try:
time.sleep(0.01)
print("{:6.3f} ".format(ina219_five.bus_voltage), "{:6.3f} ".format(ina219_five.current) , end = '')
except:
try:
ina219_five = INA219(i2c_two, addresses[0])
ina219_five.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_five.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_five.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
print("{:6.3f} ".format(ina219_five.bus_voltage), "{:6.3f} ".format(ina219_five.current) , end = '')
error = 1
except:
print("{:6.3f} ".format(0), "{:6.3f} ".format(0), "{:6.3f} ".format(0), "{:6.3f} ".format(0), "{:6.3f} ".format(0), "{:6.3f} ".format(0), "{:6.3f} ".format(0), "{:6.3f} ".format(0), end = '')
# pass
# print("Python Error 3", file=sys.stderr, flush=True)
print("{:6.3f} ".format(0), "{:6.3f} ".format(0), end = '')
try:
time.sleep(0.01)
print("{:6.3f} ".format(ina219_six.bus_voltage), "{:6.3f} ".format(ina219_six.current) , end = '')
except:
try:
ina219_six = INA219(i2c_two, addresses[1])
ina219_six.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_six.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_six.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
print("{:6.3f} ".format(ina219_six.bus_voltage), "{:6.3f} ".format(ina219_six.current) , end = '')
error = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
print("{:6.3f} ".format(0), "{:6.3f} ".format(0), end = '')
try:
time.sleep(0.01)
print("{:6.3f} ".format(ina219_seven.bus_voltage), "{:6.3f} ".format(ina219_seven.current) , end = '')
except:
try:
ina219_seven = INA219(i2c_two, addresses[2])
ina219_seven.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_seven.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_seven.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
print("{:6.3f} ".format(ina219_seven.bus_voltage), "{:6.3f} ".format(ina219_seven.current) , end = '')
error = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
print("{:6.3f} ".format(0), "{:6.3f} ".format(0), end = '')
try:
time.sleep(0.01)
print("{:6.3f} ".format(ina219_eight.bus_voltage), "{:6.3f} ".format(ina219_eight.current), end = '')
except:
try:
ina219_eight = INA219(i2c_two, addresses[3])
ina219_eight.bus_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_eight.shunt_adc_resolution = ADCResolution.ADCRES_12BIT_32S # 1S
time.sleep(0.001)
ina219_eight.bus_voltage_range = BusVoltageRange.RANGE_16V
time.sleep(0.01)
print("{:6.3f} ".format(ina219_eight.bus_voltage), "{:6.3f} ".format(ina219_eight.current), end = '')
error = 1
except:
# print("Python Error 3", file=sys.stderr, flush=True)
print("{:6.3f} ".format(0), "{:6.3f} ".format(0), end = '')
if (error == 0):
print(" ")
else:
print("Python Error Recovered!")
if not single:
inp = input()
# print(inp)
else:
break

@ -3,36 +3,46 @@
import RPi.GPIO as GPIO
import subprocess
import time
import os
#import os
import sys
from os import system
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(22, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP)
transmit = False
if GPIO.input(12) == False:
transmit = True
if GPIO.input(27) == False:
if GPIO.input(22) == False:
transmit = True
txLed = 22
txLedOn = False
txLedOff = True
txLed = 27
txLedOn = 0
txLedOff = 1
else:
txLed = 27
txLedOn = True
txLedOff = False
txLedOn = 1
txLedOff = 0
GPIO.setup(txLed, GPIO.OUT)
print(txLedOn)
print(txLed)
GPIO.setup(27, GPIO.OUT)
GPIO.output(27, 0)
print(transmit)
file = open("/home/pi/CubeSatSim/sim.cfg")
callsign = file.readline().split(" ")[0]
try:
file = open("/home/pi/CubeSatSim/sim.cfg")
callsign = file.readline().split(" ")[0]
except:
callsign = "AMSAT"
print(callsign)
#GPIO.output(27, 1);
GPIO.output(txLed, txLedOn);
os.system("echo 'de " + callsign + "' > id.txt && gen_packets -M 20 id.txt -o morse.wav -r 48000 > /dev/null 2>&1 && cat morse.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.9e3")
system("echo 'de " + callsign + "' > id.txt && sudo gen_packets -M 20 /home/pi/CubeSatSim/id.txt -o /home/pi/CubeSatSim/morse.wav -r 48000 > /dev/null 2>&1 && cat /home/pi/CubeSatSim/morse.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.9e3")
#GPIO.output(27, 0);
GPIO.output(txLed, txLedOff);
time.sleep(2)
@ -41,35 +51,90 @@ if __name__ == "__main__":
if (transmit):
print 'Length: ', len(sys.argv)
# print 'Length: ', len(sys.argv)
if (len(sys.argv)) > 1:
# print("There are arguments!")
if (('a' == sys.argv[1]) or ('afsk' in sys.argv[1])):
print("AFSK")
time.sleep(4)
for x in range(5):
system("sudo gen_packets -o /home/pi/CubeSatSim/telem.wav /home/pi/CubeSatSim/t.txt -r 48000 > /dev/null 2>&1 && cat /home/pi/CubeSatSim/telem.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.9e3 > /dev/null 2>&1")
time.sleep(4)
while True:
time.sleep(5)
try:
f = open("/home/pi/CubeSatSim/ready")
system("sudo gen_packets -o /home/pi/CubeSatSim/telem.wav /home/pi/CubeSatSim/t.txt -r 48000 > /dev/null 2>&1 && cat /home/pi/CubeSatSim/telem.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.9e3 > /dev/null 2>&1")
f.close()
system("sudo rm ready")
time.sleep(0.5)
except:
time.sleep(0.5)
elif (('s' == sys.argv[1]) or ('sstv' in sys.argv[1])):
print("SSTV")
try:
from picamera import PiCamera
# from pysstv.sstv import SSTV
camera = PiCamera()
print("Camera present")
camera_present = 1
camera.close()
except:
print("No camera")
camera_present = 0
try:
file = open("/home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg")
print("First SSTV stored image detected")
system("/home/pi/PiSSTVpp/pisstvpp -r 48000 -p s2 /home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg")
print ("Sending SSTV image")
GPIO.output(txLed, txLedOn);
system("cat /home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg.wav | csdr convert_i16_f | csdr gain_ff 14000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434.9e3") # > /dev/null 2>&1")
GPIO.output(txLed, txLedOff)
# time.sleep(1)
except:
print("No first image")
# while 1:
GPIO.output(txLed, txLedOff)
if (camera_present == 1):
while 1:
system("raspistill -o /home/pi/CubeSatSim/camera_out.jpg -w 320 -h 256") # > /dev/null 2>&1")
print("Photo taken")
system("/home/pi/PiSSTVpp/pisstvpp -r 48000 -p s2 /home/pi/CubeSatSim/camera_out.jpg")
print ("Sending SSTV image")
GPIO.output(txLed, txLedOn);
system("cat /home/pi/CubeSatSim/camera_out.jpg.wav | csdr convert_i16_f | csdr gain_ff 14000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434.9e3") # > /dev/null 2>&1")
GPIO.output(txLed, txLedOff)
time.sleep(1)
else:
try:
file = open("/home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg")
print("Second SSTV stored image detected")
system("/home/pi/PiSSTVpp/pisstvpp -r 48000 -p s2 /home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg")
while 1:
print ("Sending SSTV image")
GPIO.output(txLed, txLedOn);
os.system("(while true; do (sleep 5 && cat /home/pi/CubeSatSim/wav/sstv.wav); done) | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434.9e3")
# while True:
# GPIO.output(txLed, txLedOff);
# print("Sleeping")
# time.sleep(10)
# print("Transmitting SSTV")
# GPIO.output(txLed, txLedOn);
# os.system("cat /home/pi/CubeSatSim/wav/sstv.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434.9e3")
system("cat /home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg.wav | csdr convert_i16_f | csdr gain_ff 14000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434.9e3") # > /dev/null 2>&1")
GPIO.output(txLed, txLedOff)
time.sleep(5)
except:
system("(while true; do (sleep 5 && cat /home/pi/CubeSatSim/wav/sstv.wav); done) | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f 434.9e3 &")
while 1:
GPIO.output(txLed, txLedOn)
time.sleep(60)
GPIO.output(txLed, txLedOff)
time.sleep(1)
elif (('b' == sys.argv[1]) or ('bpsk' in sys.argv[1])):
print("BPSK")
os.system("sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/rpitx/sendiq -i /dev/stdin -s 96000 -f 434.9e6 -t float")
system("sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/rpitx/sendiq -i /dev/stdin -s 96000 -f 434.9e6 -t float")
else:
print("FSK")
os.system("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.9e3")
system("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.9e3")
else:
print("FSK")
os.system("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.9e3")
system("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f 434.9e3")
else:
print("No Band Pass Filter so no telemetry transmit. See http://cubesatsim.org/wiki for instructions on how to build the BPF.")
while True:
while 1:
time.sleep(5)

@ -8,18 +8,18 @@ if [ "$1" = "c" ]; then
echo $y
if [ $(($y % 4)) = 3 ]; then
echo "Mode is continuous AFSK"
python -u /home/pi/CubeSatSim/rpitx.py a
python3 -u /home/pi/CubeSatSim/rpitx.py a
elif [ $(($y % 4)) = 1 ]; then
echo "Mode is continuous BPSK"
python -u /home/pi/CubeSatSim/rpitx.py b
python3 -u /home/pi/CubeSatSim/rpitx.py b
elif [ $(($y % 4)) = 2 ]; then
echo "Mode is continuous SSTV"
python -u /home/pi/CubeSatSim/rpitx.py s
python3 -u /home/pi/CubeSatSim/rpitx.py s
else
echo "Mode is continuous FSK"
python -u /home/pi/CubeSatSim/rpitx.py f
python3 -u /home/pi/CubeSatSim/rpitx.py f
fi
else
python -u /home/pi/CubeSatSim/rpitx.py $1
python3 -u /home/pi/CubeSatSim/rpitx.py $1
fi

@ -0,0 +1,61 @@
60,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
0,MAX,BATT_A_V,12,V,4,NONE,4,1,3,Cell A,Battery pair A voltage (0-2.5V scale)
1,MAX,BATT_B_V,12,V,4,NONE,4,2,3,Cell A + B,Battery pairs A+B voltage (0-3.3V scale)
2,MAX,BATT_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,1,3,Cell A+B+C Voltage,Battery A+B+C voltage (0-5.0V scale)
3,MAX,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,7,4,3,Acceleration,Acceleration around X Axis
4,MAX,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,8,4,3,Acceleration,Acceleration around Y Axis
5,MAX,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,9,4,3,Acceleration,Acceleration around Z Axis
6,MAX,battCurr,12,mA,cubesatsim_current,NONE,4,2,3,Current,Total Battery DC current
7,MAX,Temperature,12,C,cubesatsim_temperature,NONE,6,2,3,Temp,STEM Payload Sensor Temperature
8,MAX,posXv,12,V,cubesatsim_voltage|FLOAT2,NONE,7,1,3,Voltage,+X solar Panel voltage
9,MAX,posYv,12,V,cubesatsim_voltage|FLOAT2,NONE,8,1,3,Voltage,+Y solar Panel voltage
10,MAX,posZv,12,V,cubesatsim_voltage|FLOAT2,NONE,9,1,3,Voltage,+Z solar Panel voltage
11,MAX,negXv,12,V,cubesatsim_voltage|FLOAT2,NONE,10,1,3,Voltage,-X solar Panel voltage
12,MAX,negYv,12,V,cubesatsim_voltage|FLOAT2,NONE,11,1,3,Voltage,-Y solar Panel voltage
13,MAX,negZv,12,V,cubesatsim_voltage|FLOAT2,NONE,12,1,3,Voltage,-Z solar Panel voltage
14,MAX,posXi,12,mA,cubesatsim_current,NONE,7,2,3,Current,+X solar Panel current
15,MAX,posYi,12,mA,cubesatsim_current,NONE,8,2,3,Current,+Y solar Panel current
16,MAX,posZi,12,mA,cubesatsim_current,NONE,9,2,3,Current,+Z solar Panel current
17,MAX,negXi,12,mA,cubesatsim_current,NONE,10,2,3,Current,-X solar Panel current
18,MAX,negYi,12,mA,cubesatsim_current,NONE,11,2,3,Current,-Y solar Panel current
19,MAX,negZi,12,mA,cubesatsim_current,NONE,12,2,3,Current,-Z solar Panel current
20,MAX,PSUVoltage,12,V,cubesatsim_voltage|FLOAT2,NONE,5,1,3,Board Voltage,Power Supply Voltage
21,MAX,spin,12,rpm,cubesatsim_rpm,NONE,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
22,MAX,Pressure,12,hPa,cubesatsim_pressure,NONE,6,3,3,Pressure,STEM Payload Sensor Pressure
23,MAX,Altitude,12,m,cubesatsim_altitude,NONE,6,4,3,Altitude,STEM Payload Sensor Altitude
24,MAX,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
25,MAX,rssi,12,dBm,cubesatsim_rssi|INT,NONE,1,1,3,RSSI,Received Signal Strength Indication
26,MAX,IHUcpuTemp,12,C,cubesatsim_temperature,NONE,2,1,3,Temperature,Internal Temperature of IHU
27,MAX,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation,NONE,7,3,3,Rotation,Angular Veolcity around X Axis
28,MAX,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation,NONE,8,3,3,Rotation,Angular Veolcity around Y Axis
29,MAX,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation,NONE,9,3,3,Rotation,Angular Veolcity around Z Axis
30,MAX,Humidity,12,%,cubesatsim_temperature,NONE,6,5,3,Humidity,Humidity
31,MAX,PSUCurrent,12,mA,cubesatsim_current,NONE,5,2,3,Current,Power Supply DC Current
32,MAX,Sensor1,12,signed raw,cubesatsim_sensor2|INT,NONE,6,6,3,Sensor 1,STEM Payload Extra Sensor 1
33,MAX,Sensor2,12,signed raw,cubesatsim_sensor3|FLOAT2,NONE,6,7,3,Sensor 2,STEM Payload Extra Sensor 2
34,MAX,ICR3VProt,12,V,43,NONE,7,2,3,3V Prot,ICR 3V Proteted
35,MAX,ICR2dot5V,12,V,43,NONE,7,3,3,2.5V,ICR 2.5V
36,MAX,ICR2dot5VProt,12,V,43,NONE,7,4,3,2.5V Prot,ICR 2.5V Protected
37,MAX,rf6,12,-,0,NONE,0,0,0,None,None
38,MAX,rf7,12,-,0,NONE,0,0,0,None,None
39,MAX,MuxTest,12,V,43,NONE,7,5,3,Sensor Power,Sensor Power Voltage at the ICR
40,MAX,LtVGACtl,12,V,42,NONE,1,4,3,VGA Control,Control Voltage to the Variable Gain Amplifier (VGA)
41,MAX,pad,4,-,34,NONE,0,0,0,None,Unused
42,MAX,IHUdiagData,32,-,18,NONE,3,2,0,Diagnostic Info,Diagnostic Data on IHU Performance
43,MAX,STEMPayloadStatus,1,-,17,NONE,6,1,0,STEM Payload Status, STEM Payload STEM Payload Board Failure Indicator
44,MAX,Nominal Mode,1,-,17,NONE,3,2,0,Nominal Mode, Nominal Mode (Not Safe Mode)
45,MAX,expFailure2,1,-,17,NONE,6,7,0,Exp 2,Experiment 2 Failure Indicator
46,MAX,expFailure3,1,-,17,NONE,6,8,0,Exp 3,Experiment 3 Failure Indicator
47,MAX,I2CfailureBatt,1,-,17,NONE,2,2,0,Battery I2C,Battery I2C Bus failure indicator
48,MAX,I2CfailurePSU1,1,-,17,NONE,2,3,0,PSU1 I2C,PSU2 I2C Bus failure indicator
49,MAX,I2CfailurePSU2,1,-,17,NONE,2,4,0,PSU2 I2C,PSU2 I2C Bus failure indicator
50,MAX,TLMresets,4,-,1,NONE,2,6,0,Ground Resets,Number of times command stations reset stored telemetry
51,MAX,RxAntDeploy,1,-,16,NONE,1,3,0,RX Antenna,2m Antenna status
52,MAX,TxAntDeploy,2,-,16,NONE,1,2,0,TX Antenna,70cm Antenna status
53,MAX,I2CfailureRF,1,-,17,NONE,2,5,0,RF I2C,RF I2C Bus failure indicator
54,MAX,pad1,1,-,0,NONE,0,0,0,NONE,Filler
55,MAX,wodSize,8,000s,36,NONE,3,3,0,WOD Stored,Number of WOD data payloads kept for each of Science and Housekeeping. In hundreds
56,MAX,swCmds,32,-,35,NONE,7,6,0,Diagnostic,ICR Diagnostic information
57,MAX,hwCmdCnt,6,-,1,NONE,7,7,0,HW Command Count,Number of hardware commands since last reset
58,MAX,swCmdCnt,6,-,1,NONE,7,8,0,SW Command Count,Number of software commands since last reset
59,MAX,pad2,28,-,0,NONE,0,0,0,NONE,Filler
1 60 TYPE FIELD BITS UNIT CONVERSION MODULE MODULE_NUM MODULE_LINE LINE_TYPE SHORT_NAME DESCRIPTION
2 0 MAX BATT_A_V 12 V 4 NONE 4 1 3 Cell A Battery pair A voltage (0-2.5V scale)
3 1 MAX BATT_B_V 12 V 4 NONE 4 2 3 Cell A + B Battery pairs A+B voltage (0-3.3V scale)
4 2 MAX BATT_V 12 V cubesatsim_voltage|FLOAT2 NONE 4 1 3 Cell A+B+C Voltage Battery A+B+C voltage (0-5.0V scale)
5 3 MAX SatelliteXAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 7 4 3 Acceleration Acceleration around X Axis
6 4 MAX SatelliteYAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 8 4 3 Acceleration Acceleration around Y Axis
7 5 MAX SatelliteZAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 9 4 3 Acceleration Acceleration around Z Axis
8 6 MAX battCurr 12 mA cubesatsim_current NONE 4 2 3 Current Total Battery DC current
9 7 MAX Temperature 12 C cubesatsim_temperature NONE 6 2 3 Temp STEM Payload Sensor Temperature
10 8 MAX posXv 12 V cubesatsim_voltage|FLOAT2 NONE 7 1 3 Voltage +X solar Panel voltage
11 9 MAX posYv 12 V cubesatsim_voltage|FLOAT2 NONE 8 1 3 Voltage +Y solar Panel voltage
12 10 MAX posZv 12 V cubesatsim_voltage|FLOAT2 NONE 9 1 3 Voltage +Z solar Panel voltage
13 11 MAX negXv 12 V cubesatsim_voltage|FLOAT2 NONE 10 1 3 Voltage -X solar Panel voltage
14 12 MAX negYv 12 V cubesatsim_voltage|FLOAT2 NONE 11 1 3 Voltage -Y solar Panel voltage
15 13 MAX negZv 12 V cubesatsim_voltage|FLOAT2 NONE 12 1 3 Voltage -Z solar Panel voltage
16 14 MAX posXi 12 mA cubesatsim_current NONE 7 2 3 Current +X solar Panel current
17 15 MAX posYi 12 mA cubesatsim_current NONE 8 2 3 Current +Y solar Panel current
18 16 MAX posZi 12 mA cubesatsim_current NONE 9 2 3 Current +Z solar Panel current
19 17 MAX negXi 12 mA cubesatsim_current NONE 10 2 3 Current -X solar Panel current
20 18 MAX negYi 12 mA cubesatsim_current NONE 11 2 3 Current -Y solar Panel current
21 19 MAX negZi 12 mA cubesatsim_current NONE 12 2 3 Current -Z solar Panel current
22 20 MAX PSUVoltage 12 V cubesatsim_voltage|FLOAT2 NONE 5 1 3 Board Voltage Power Supply Voltage
23 21 MAX spin 12 rpm cubesatsim_rpm NONE 3 1 3 Spacecraft Spin Calculated spin rate using solar cells
24 22 MAX Pressure 12 hPa cubesatsim_pressure NONE 6 3 3 Pressure STEM Payload Sensor Pressure
25 23 MAX Altitude 12 m cubesatsim_altitude NONE 6 4 3 Altitude STEM Payload Sensor Altitude
26 24 MAX Resets 12 - 12 NONE 3 2 3 Reset Count Software Reset Count
27 25 MAX rssi 12 dBm cubesatsim_rssi|INT NONE 1 1 3 RSSI Received Signal Strength Indication
28 26 MAX IHUcpuTemp 12 C cubesatsim_temperature NONE 2 1 3 Temperature Internal Temperature of IHU
29 27 MAX SatelliteXAxisAngularVelocity 12 dps cubesatsim_rotation NONE 7 3 3 Rotation Angular Veolcity around X Axis
30 28 MAX SatelliteYAxisAngularVelocity 12 dps cubesatsim_rotation NONE 8 3 3 Rotation Angular Veolcity around Y Axis
31 29 MAX SatelliteZAxisAngularVelocity 12 dps cubesatsim_rotation NONE 9 3 3 Rotation Angular Veolcity around Z Axis
32 30 MAX Humidity 12 % cubesatsim_temperature NONE 6 5 3 Humidity Humidity
33 31 MAX PSUCurrent 12 mA cubesatsim_current NONE 5 2 3 Current Power Supply DC Current
34 32 MAX Sensor1 12 signed raw cubesatsim_sensor2|INT NONE 6 6 3 Sensor 1 STEM Payload Extra Sensor 1
35 33 MAX Sensor2 12 signed raw cubesatsim_sensor3|FLOAT2 NONE 6 7 3 Sensor 2 STEM Payload Extra Sensor 2
36 34 MAX ICR3VProt 12 V 43 NONE 7 2 3 3V Prot ICR 3V Proteted
37 35 MAX ICR2dot5V 12 V 43 NONE 7 3 3 2.5V ICR 2.5V
38 36 MAX ICR2dot5VProt 12 V 43 NONE 7 4 3 2.5V Prot ICR 2.5V Protected
39 37 MAX rf6 12 - 0 NONE 0 0 0 None None
40 38 MAX rf7 12 - 0 NONE 0 0 0 None None
41 39 MAX MuxTest 12 V 43 NONE 7 5 3 Sensor Power Sensor Power Voltage at the ICR
42 40 MAX LtVGACtl 12 V 42 NONE 1 4 3 VGA Control Control Voltage to the Variable Gain Amplifier (VGA)
43 41 MAX pad 4 - 34 NONE 0 0 0 None Unused
44 42 MAX IHUdiagData 32 - 18 NONE 3 2 0 Diagnostic Info Diagnostic Data on IHU Performance
45 43 MAX STEMPayloadStatus 1 - 17 NONE 6 1 0 STEM Payload Status STEM Payload STEM Payload Board Failure Indicator
46 44 MAX Nominal Mode 1 - 17 NONE 3 2 0 Nominal Mode Nominal Mode (Not Safe Mode)
47 45 MAX expFailure2 1 - 17 NONE 6 7 0 Exp 2 Experiment 2 Failure Indicator
48 46 MAX expFailure3 1 - 17 NONE 6 8 0 Exp 3 Experiment 3 Failure Indicator
49 47 MAX I2CfailureBatt 1 - 17 NONE 2 2 0 Battery I2C Battery I2C Bus failure indicator
50 48 MAX I2CfailurePSU1 1 - 17 NONE 2 3 0 PSU1 I2C PSU2 I2C Bus failure indicator
51 49 MAX I2CfailurePSU2 1 - 17 NONE 2 4 0 PSU2 I2C PSU2 I2C Bus failure indicator
52 50 MAX TLMresets 4 - 1 NONE 2 6 0 Ground Resets Number of times command stations reset stored telemetry
53 51 MAX RxAntDeploy 1 - 16 NONE 1 3 0 RX Antenna 2m Antenna status
54 52 MAX TxAntDeploy 2 - 16 NONE 1 2 0 TX Antenna 70cm Antenna status
55 53 MAX I2CfailureRF 1 - 17 NONE 2 5 0 RF I2C RF I2C Bus failure indicator
56 54 MAX pad1 1 - 0 NONE 0 0 0 NONE Filler
57 55 MAX wodSize 8 000s 36 NONE 3 3 0 WOD Stored Number of WOD data payloads kept for each of Science and Housekeeping. In hundreds
58 56 MAX swCmds 32 - 35 NONE 7 6 0 Diagnostic ICR Diagnostic information
59 57 MAX hwCmdCnt 6 - 1 NONE 7 7 0 HW Command Count Number of hardware commands since last reset
60 58 MAX swCmdCnt 6 - 1 NONE 7 8 0 SW Command Count Number of software commands since last reset
61 59 MAX pad2 28 - 0 NONE 0 0 0 NONE Filler

@ -0,0 +1,61 @@
60,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
0,MIN,BATT_A_V,12,V,4,NONE,4,1,3,Cell A,Battery pair A voltage (0-2.5V scale)
1,MIN,BATT_B_V,12,V,4,NONE,4,2,3,Cell A + B,Battery pairs A+B voltage (0-3.3V scale)
2,MIN,BATT_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,1,3,Cell A+B+C Voltage,Battery A+B+C voltage (0-5.0V scale)
3,MIN,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,7,4,3,Acceleration,Acceleration around X Axis
4,MIN,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,8,4,3,Acceleration,Acceleration around Y Axis
5,MIN,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,9,4,3,Acceleration,Acceleration around Z Axis
6,MIN,battCurr,12,mA,cubesatsim_current,NONE,4,2,3,Current,Total Battery DC current
7,MIN,Temperature,12,C,cubesatsim_temperature,NONE,6,2,3,Temp,STEM Payload Sensor Temperature
8,MIN,posXv,12,V,cubesatsim_voltage|FLOAT2,NONE,7,1,3,Voltage,+X solar Panel voltage
9,MIN,posYv,12,V,cubesatsim_voltage|FLOAT2,NONE,8,1,3,Voltage,+Y solar Panel voltage
10,MIN,posZv,12,V,cubesatsim_voltage|FLOAT2,NONE,9,1,3,Voltage,+Z solar Panel voltage
11,MIN,negXv,12,V,cubesatsim_voltage|FLOAT2,NONE,10,1,3,Voltage,-X solar Panel voltage
12,MIN,negYv,12,V,cubesatsim_voltage|FLOAT2,NONE,11,1,3,Voltage,-Y solar Panel voltage
13,MIN,negZv,12,V,cubesatsim_voltage|FLOAT2,NONE,12,1,3,Voltage,-Z solar Panel voltage
14,MIN,posXi,12,mA,cubesatsim_current,NONE,7,2,3,Current,+X solar Panel current
15,MIN,posYi,12,mA,cubesatsim_current,NONE,8,2,3,Current,+Y solar Panel current
16,MIN,posZi,12,mA,cubesatsim_current,NONE,9,2,3,Current,+Z solar Panel current
17,MIN,negXi,12,mA,cubesatsim_current,NONE,10,2,3,Current,-X solar Panel current
18,MIN,negYi,12,mA,cubesatsim_current,NONE,11,2,3,Current,-Y solar Panel current
19,MIN,negZi,12,mA,cubesatsim_current,NONE,12,2,3,Current,-Z solar Panel current
20,MIN,PSUVoltage,12,V,cubesatsim_voltage|FLOAT2,NONE,5,1,3,Board Voltage,Power Supply Voltage
21,MIN,spin,12,rpm,cubesatsim_rpm,NONE,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
22,MIN,Pressure,12,hPa,cubesatsim_pressure,NONE,6,3,3,Pressure,STEM Payload Sensor Pressure
23,MIN,Altitude,12,m,cubesatsim_altitude,NONE,6,4,3,Altitude,STEM Payload Sensor Altitude
24,MIN,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
25,MIN,rssi,12,dBm,cubesatsim_rssi|INT,NONE,1,1,3,RSSI,Received Signal Strength Indication
26,MIN,IHUcpuTemp,12,C,cubesatsim_temperature,NONE,2,1,3,Temperature,Internal Temperature of IHU
27,MIN,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation,NONE,7,3,3,Rotation,Angular Veolcity around X Axis
28,MIN,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation,NONE,8,3,3,Rotation,Angular Veolcity around Y Axis
29,MIN,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation,NONE,9,3,3,Rotation,Angular Veolcity around Z Axis
30,MIN,Humidity,12,%,cubesatsim_temperature,NONE,6,5,3,Humidity,Humidity
31,MIN,PSUCurrent,12,mA,cubesatsim_current,NONE,5,2,3,Current,Power Supply DC Current
32,MIN,Sensor1,12,signed raw,cubesatsim_sensor2|INT,NONE,6,6,3,Sensor 1,STEM Payload Extra Sensor 1
33,MIN,Sensor2,12,signed raw,cubesatsim_sensor3|FLOAT2,NONE,6,7,3,Sensor 2,STEM Payload Extra Sensor 2
34,MIN,ICR3VProt,12,V,43,NONE,7,2,3,3V Prot,ICR 3V Proteted
35,MIN,ICR2dot5V,12,V,43,NONE,7,3,3,2.5V,ICR 2.5V
36,MIN,ICR2dot5VProt,12,V,43,NONE,7,4,3,2.5V Prot,ICR 2.5V Protected
37,MIN,rf6,12,-,0,NONE,0,0,0,None,None
38,MIN,rf7,12,-,0,NONE,0,0,0,None,None
39,MIN,MuxTest,12,V,43,NONE,7,5,3,Sensor Power,Sensor Power Voltage at the ICR
40,MIN,LtVGACtl,12,V,42,NONE,1,4,3,VGA Control,Control Voltage to the Variable Gain Amplifier (VGA)
41,MIN,pad,4,-,34,NONE,0,0,0,None,Unused
42,MIN,IHUdiagData,32,-,18,NONE,3,2,0,Diagnostic Info,Diagnostic Data on IHU Performance
43,MIN,STEMPayloadStatus,1,-,17,NONE,6,1,0,STEM Payload Status, STEM Payload STEM Payload Board Failure Indicator
44,MIN,Nominal Mode,1,-,17,NONE,3,2,0,Nominal Mode, Nominal Mode (Not Safe Mode)
45,MIN,expFailure2,1,-,17,NONE,6,7,0,Exp 2,Experiment 2 Failure Indicator
46,MIN,expFailure3,1,-,17,NONE,6,8,0,Exp 3,Experiment 3 Failure Indicator
47,MIN,I2CfailureBatt,1,-,17,NONE,2,2,0,Battery I2C,Battery I2C Bus failure indicator
48,MIN,I2CfailurePSU1,1,-,17,NONE,2,3,0,PSU1 I2C,PSU2 I2C Bus failure indicator
49,MIN,I2CfailurePSU2,1,-,17,NONE,2,4,0,PSU2 I2C,PSU2 I2C Bus failure indicator
50,MIN,TLMresets,4,-,1,NONE,2,6,0,Ground Resets,Number of times command stations reset stored telemetry
51,MIN,RxAntDeploy,1,-,16,NONE,1,3,0,RX Antenna,2m Antenna status
52,MIN,TxAntDeploy,2,-,16,NONE,1,2,0,TX Antenna,70cm Antenna status
53,MIN,I2CfailureRF,1,-,17,NONE,2,5,0,RF I2C,RF I2C Bus failure indicator
54,MIN,pad1,1,-,0,NONE,0,0,0,NONE,Filler
55,MIN,wodSize,8,000s,36,NONE,3,3,0,WOD Stored,Number of WOD data payloads kept for each of Science and Housekeeping. In hundreds
56,MIN,swCmds,32,-,35,NONE,7,6,0,Diagnostic,ICR Diagnostic information
57,MIN,hwCmdCnt,6,-,1,NONE,7,7,0,HW Command Count,Number of hardware commands since last reset
58,MIN,swCmdCnt,6,-,1,NONE,7,8,0,SW Command Count,Number of software commands since last reset
59,MIN,pad2,28,-,0,NONE,0,0,0,NONE,Filler
1 60 TYPE FIELD BITS UNIT CONVERSION MODULE MODULE_NUM MODULE_LINE LINE_TYPE SHORT_NAME DESCRIPTION
2 0 MIN BATT_A_V 12 V 4 NONE 4 1 3 Cell A Battery pair A voltage (0-2.5V scale)
3 1 MIN BATT_B_V 12 V 4 NONE 4 2 3 Cell A + B Battery pairs A+B voltage (0-3.3V scale)
4 2 MIN BATT_V 12 V cubesatsim_voltage|FLOAT2 NONE 4 1 3 Cell A+B+C Voltage Battery A+B+C voltage (0-5.0V scale)
5 3 MIN SatelliteXAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 7 4 3 Acceleration Acceleration around X Axis
6 4 MIN SatelliteYAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 8 4 3 Acceleration Acceleration around Y Axis
7 5 MIN SatelliteZAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 9 4 3 Acceleration Acceleration around Z Axis
8 6 MIN battCurr 12 mA cubesatsim_current NONE 4 2 3 Current Total Battery DC current
9 7 MIN Temperature 12 C cubesatsim_temperature NONE 6 2 3 Temp STEM Payload Sensor Temperature
10 8 MIN posXv 12 V cubesatsim_voltage|FLOAT2 NONE 7 1 3 Voltage +X solar Panel voltage
11 9 MIN posYv 12 V cubesatsim_voltage|FLOAT2 NONE 8 1 3 Voltage +Y solar Panel voltage
12 10 MIN posZv 12 V cubesatsim_voltage|FLOAT2 NONE 9 1 3 Voltage +Z solar Panel voltage
13 11 MIN negXv 12 V cubesatsim_voltage|FLOAT2 NONE 10 1 3 Voltage -X solar Panel voltage
14 12 MIN negYv 12 V cubesatsim_voltage|FLOAT2 NONE 11 1 3 Voltage -Y solar Panel voltage
15 13 MIN negZv 12 V cubesatsim_voltage|FLOAT2 NONE 12 1 3 Voltage -Z solar Panel voltage
16 14 MIN posXi 12 mA cubesatsim_current NONE 7 2 3 Current +X solar Panel current
17 15 MIN posYi 12 mA cubesatsim_current NONE 8 2 3 Current +Y solar Panel current
18 16 MIN posZi 12 mA cubesatsim_current NONE 9 2 3 Current +Z solar Panel current
19 17 MIN negXi 12 mA cubesatsim_current NONE 10 2 3 Current -X solar Panel current
20 18 MIN negYi 12 mA cubesatsim_current NONE 11 2 3 Current -Y solar Panel current
21 19 MIN negZi 12 mA cubesatsim_current NONE 12 2 3 Current -Z solar Panel current
22 20 MIN PSUVoltage 12 V cubesatsim_voltage|FLOAT2 NONE 5 1 3 Board Voltage Power Supply Voltage
23 21 MIN spin 12 rpm cubesatsim_rpm NONE 3 1 3 Spacecraft Spin Calculated spin rate using solar cells
24 22 MIN Pressure 12 hPa cubesatsim_pressure NONE 6 3 3 Pressure STEM Payload Sensor Pressure
25 23 MIN Altitude 12 m cubesatsim_altitude NONE 6 4 3 Altitude STEM Payload Sensor Altitude
26 24 MIN Resets 12 - 12 NONE 3 2 3 Reset Count Software Reset Count
27 25 MIN rssi 12 dBm cubesatsim_rssi|INT NONE 1 1 3 RSSI Received Signal Strength Indication
28 26 MIN IHUcpuTemp 12 C cubesatsim_temperature NONE 2 1 3 Temperature Internal Temperature of IHU
29 27 MIN SatelliteXAxisAngularVelocity 12 dps cubesatsim_rotation NONE 7 3 3 Rotation Angular Veolcity around X Axis
30 28 MIN SatelliteYAxisAngularVelocity 12 dps cubesatsim_rotation NONE 8 3 3 Rotation Angular Veolcity around Y Axis
31 29 MIN SatelliteZAxisAngularVelocity 12 dps cubesatsim_rotation NONE 9 3 3 Rotation Angular Veolcity around Z Axis
32 30 MIN Humidity 12 % cubesatsim_temperature NONE 6 5 3 Humidity Humidity
33 31 MIN PSUCurrent 12 mA cubesatsim_current NONE 5 2 3 Current Power Supply DC Current
34 32 MIN Sensor1 12 signed raw cubesatsim_sensor2|INT NONE 6 6 3 Sensor 1 STEM Payload Extra Sensor 1
35 33 MIN Sensor2 12 signed raw cubesatsim_sensor3|FLOAT2 NONE 6 7 3 Sensor 2 STEM Payload Extra Sensor 2
36 34 MIN ICR3VProt 12 V 43 NONE 7 2 3 3V Prot ICR 3V Proteted
37 35 MIN ICR2dot5V 12 V 43 NONE 7 3 3 2.5V ICR 2.5V
38 36 MIN ICR2dot5VProt 12 V 43 NONE 7 4 3 2.5V Prot ICR 2.5V Protected
39 37 MIN rf6 12 - 0 NONE 0 0 0 None None
40 38 MIN rf7 12 - 0 NONE 0 0 0 None None
41 39 MIN MuxTest 12 V 43 NONE 7 5 3 Sensor Power Sensor Power Voltage at the ICR
42 40 MIN LtVGACtl 12 V 42 NONE 1 4 3 VGA Control Control Voltage to the Variable Gain Amplifier (VGA)
43 41 MIN pad 4 - 34 NONE 0 0 0 None Unused
44 42 MIN IHUdiagData 32 - 18 NONE 3 2 0 Diagnostic Info Diagnostic Data on IHU Performance
45 43 MIN STEMPayloadStatus 1 - 17 NONE 6 1 0 STEM Payload Status STEM Payload STEM Payload Board Failure Indicator
46 44 MIN Nominal Mode 1 - 17 NONE 3 2 0 Nominal Mode Nominal Mode (Not Safe Mode)
47 45 MIN expFailure2 1 - 17 NONE 6 7 0 Exp 2 Experiment 2 Failure Indicator
48 46 MIN expFailure3 1 - 17 NONE 6 8 0 Exp 3 Experiment 3 Failure Indicator
49 47 MIN I2CfailureBatt 1 - 17 NONE 2 2 0 Battery I2C Battery I2C Bus failure indicator
50 48 MIN I2CfailurePSU1 1 - 17 NONE 2 3 0 PSU1 I2C PSU2 I2C Bus failure indicator
51 49 MIN I2CfailurePSU2 1 - 17 NONE 2 4 0 PSU2 I2C PSU2 I2C Bus failure indicator
52 50 MIN TLMresets 4 - 1 NONE 2 6 0 Ground Resets Number of times command stations reset stored telemetry
53 51 MIN RxAntDeploy 1 - 16 NONE 1 3 0 RX Antenna 2m Antenna status
54 52 MIN TxAntDeploy 2 - 16 NONE 1 2 0 TX Antenna 70cm Antenna status
55 53 MIN I2CfailureRF 1 - 17 NONE 2 5 0 RF I2C RF I2C Bus failure indicator
56 54 MIN pad1 1 - 0 NONE 0 0 0 NONE Filler
57 55 MIN wodSize 8 000s 36 NONE 3 3 0 WOD Stored Number of WOD data payloads kept for each of Science and Housekeeping. In hundreds
58 56 MIN swCmds 32 - 35 NONE 7 6 0 Diagnostic ICR Diagnostic information
59 57 MIN hwCmdCnt 6 - 1 NONE 7 7 0 HW Command Count Number of hardware commands since last reset
60 58 MIN swCmdCnt 6 - 1 NONE 7 8 0 SW Command Count Number of software commands since last reset
61 59 MIN pad2 28 - 0 NONE 0 0 0 NONE Filler

@ -0,0 +1,61 @@
60,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
0,realTime,BATT_A_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,1,3,Cell A,Battery A voltage (0-2.5V scale)
1,realTime,BATT_B_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,2,3,Cell A+B,Battery A+B voltage (0-3.3V scale)
2,realTime,BATT_V,12,V,cubesatsim_voltage|FLOAT2,Battery,4,1,3,Cell A+B+C Voltage,Battery A+B+C voltage (0-5.0V scale)
3,realTime,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+X Panel,7,4,3,Acceleration,Acceleration around X Axis
4,realTime,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+Y Panel,8,4,3,Acceleration,Acceleration around Y Axis
5,realTime,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+Z Panel,9,4,3,Acceleration,Acceleration around Z Axis
6,realTime,battCurr,12,mA,cubesatsim_current,Battery,4,2,3,Current,Total Battery DC current
7,realTime,Temperature,12,C,cubesatsim_temperature,Experiments,6,2,3,Temperature,STEM Payload sensor temperature
8,realTime,posXv,12,V,cubesatsim_voltage|FLOAT2,+X Panel,7,1,3,Voltage,+X solar panel voltage
9,realTime,posYv,12,V,cubesatsim_voltage|FLOAT2,+Y Panel,8,1,3,Voltage,+Y solar panel voltage
10,realTime,posZv,12,V,cubesatsim_voltage|FLOAT2,+Z Panel,9,1,3,Voltage,+Z solar panel voltage
11,realTime,negXv,12,V,cubesatsim_voltage|FLOAT2,-X Panel,10,1,3,Voltage,-X solar panel voltage
12,realTime,negYv,12,V,cubesatsim_voltage|FLOAT2,-Y Panel,11,1,3,Voltage,-Y solar panel voltage
13,realTime,negZv,12,V,cubesatsim_voltage|FLOAT2,-Z Panel,12,1,3,Voltage,-Z solar panel voltage
14,realTime,posXi,12,mA,cubesatsim_current,+X Panel,7,2,3,Current,+X solar panel current
15,realTime,posYi,12,mA,cubesatsim_current,+Y Panel,8,2,3,Current,+Y solar panel current
16,realTime,posZi,12,mA,cubesatsim_current,+Z Panel,9,2,3,Current,+Z solar panel current
17,realTime,negXi,12,mA,cubesatsim_current,-X Panel,10,2,3,Current,-X solar panel current
18,realTime,negYi,12,mA,cubesatsim_current,-Y Panel,11,2,3,Current,-Y solar panel current
19,realTime,negZi,12,mA,cubesatsim_current,-Z Panel,12,2,3,Current,-Z solar panel current
20,realTime,PSUVoltage,12,V,cubesatsim_voltage|FLOAT2,PSU,5,1,3,Voltage,Power Supply voltage
21,realTime,spin,12,rpm,cubesatsim_rpm,Computer Software,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
22,realTime,Pressure,12,hPa,cubesatsim_pressure,Experiments,6,3,3,Pressure,STEM Payload sensor pressure
23,realTime,Altitude,12,m,cubesatsim_altitude,Experiments,6,4,3,Altitude,STEM Payload sensor altitude
24,realTime,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
25,realTime,rssi,12,dBm,cubesatsim_rssi|INT,Radio,1,1,3,RSSI,Received Signal Strength Indication
26,realTime,IHUcpuTemp,12,C,cubesatsim_temperature,Computer Hardware,2,1,3,Temperature,Internal temperature of IHU from Pi
27,realTime,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+X Panel,7,3,3,Rotation,Angular veolcity around X Axis
28,realTime,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+Y Panel,8,3,3,Rotation,Angular veolcity around Y Axis
29,realTime,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+Z Panel,9,3,3,Rotation,Angular veolcity around Z Axis
30,realTime,Humidity,12,%,cubesatsim_temperature,Experiments,6,5,3,Humidity,Humidity
31,realTime,PSUCurrent,12,mA,cubesatsim_current,PSU,5,2,3,Current,Power Supply DC Current
32,realTime,Sensor1,12,signed raw,cubesatsim_sensor2|INT,Experiments,6,6,3,Sensor 1,STEM Payload extra Sensor 1
33,realTime,Sensor2,12,signed scaled,cubesatsim_sensor3|FLOAT2,Experiments,6,7,3,Sensor 2,STEM Payload extra Sensor 2
34,realTime,STEMPayloadStatus,1,-,17,Experiments,6,1,0,STEM Payload, STEM Payload STEM Payload board failure indicator
35,realTime,Nominal Mode,1,-,17,Computer Software,3,2,0,Nominal Mode, Nominal Mode (Not Safe Mode)
36,realTime,SimulatedTelemetry,1,-,17,Computer Software,3,4,0,Simulated Telemetry,Simulated Telemetry indicator
37,realTime,PayloadStatus1,1,-,17,NONE,6,8,0,Exp 3,STEM Payload status 1 failure indicator
38,realTime,I2CBus0Failure,1,-,17,Computer Hardware,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
39,realTime,I2CBus1Failure,1,-,17,Computer Hardware,2,3,0,I2C Bus 1,I2C bus 1 failure indicator
40,realTime,I2CBus3Failure,1,-,17,Computer Hardware,2,4,0,I2C Bus 3,I2C bus 3 failure indicator
41,realTime,CameraFailure,1,-,17,Computer Hardware,2,5,0,Camera,Camera failure indicator
42,realTime,GroundCommands,4,-,1,Computer Software,3,3,0,Ground Commands,Number of ground commands received
43,realTime,RxAntenna,1,-,16,Radio,1,3,0,RX Antenna,Receive antenna status
44,realTime,TxAntenna,2,-,16,Radio,1,2,0,TX Antenna,Transmit antenna status
45,realTime,ICR3VProt,12,V,43,NONE,7,2,3,3V Prot,ICR 3V Proteted
46,realTime,ICR2dot5V,12,V,43,NONE,7,3,3,2.5V,ICR 2.5V
47,realTime,ICR2dot5VProt,12,V,43,NONE,7,4,3,2.5V Prot,ICR 2.5V Protected
48,realTime,rf6,12,-,0,NONE,0,0,0,None,None
49,realTime,rf7,12,-,0,NONE,0,0,0,None,None
50,realTime,MuxTest,12,V,43,NONE,7,5,3,Sensor Power,Sensor Power Voltage at the ICR
51,realTime,LtVGACtl,12,V,42,NONE,1,4,3,VGA Control,Control Voltage to the Variable Gain Amplifier (VGA)
52,realTime,pad,4,-,34,NONE,0,0,0,None,Unused
53,realTime,IHUdiagData,32,-,18,NONE,3,2,0,Diagnostic Info,Diagnostic Data on IHU Performance
54,realTime,pad1,1,-,0,NONE,0,0,0,NONE,Filler
55,realTime,wodSize,8,000s,36,NONE,3,3,0,WOD Stored,Number of WOD data payloads kept for each of Science and Housekeeping. In hundreds
56,realTime,swCmds,32,-,35,NONE,7,6,0,Diagnostic,ICR Diagnostic information
57,realTime,hwCmdCnt,6,-,1,NONE,7,7,0,HW Command Count,Number of hardware commands since last reset
58,realTime,swCmdCnt,6,-,1,NONE,7,8,0,SW Command Count,Number of software commands since last reset
59,realTime,pad2,28,-,0,NONE,0,0,0,NONE,Filler
1 60 TYPE FIELD BITS UNIT CONVERSION MODULE MODULE_NUM MODULE_LINE LINE_TYPE SHORT_NAME DESCRIPTION
2 0 realTime BATT_A_V 12 V cubesatsim_voltage|FLOAT2 NONE 4 1 3 Cell A Battery A voltage (0-2.5V scale)
3 1 realTime BATT_B_V 12 V cubesatsim_voltage|FLOAT2 NONE 4 2 3 Cell A+B Battery A+B voltage (0-3.3V scale)
4 2 realTime BATT_V 12 V cubesatsim_voltage|FLOAT2 Battery 4 1 3 Cell A+B+C Voltage Battery A+B+C voltage (0-5.0V scale)
5 3 realTime SatelliteXAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 +X Panel 7 4 3 Acceleration Acceleration around X Axis
6 4 realTime SatelliteYAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 +Y Panel 8 4 3 Acceleration Acceleration around Y Axis
7 5 realTime SatelliteZAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 +Z Panel 9 4 3 Acceleration Acceleration around Z Axis
8 6 realTime battCurr 12 mA cubesatsim_current Battery 4 2 3 Current Total Battery DC current
9 7 realTime Temperature 12 C cubesatsim_temperature Experiments 6 2 3 Temperature STEM Payload sensor temperature
10 8 realTime posXv 12 V cubesatsim_voltage|FLOAT2 +X Panel 7 1 3 Voltage +X solar panel voltage
11 9 realTime posYv 12 V cubesatsim_voltage|FLOAT2 +Y Panel 8 1 3 Voltage +Y solar panel voltage
12 10 realTime posZv 12 V cubesatsim_voltage|FLOAT2 +Z Panel 9 1 3 Voltage +Z solar panel voltage
13 11 realTime negXv 12 V cubesatsim_voltage|FLOAT2 -X Panel 10 1 3 Voltage -X solar panel voltage
14 12 realTime negYv 12 V cubesatsim_voltage|FLOAT2 -Y Panel 11 1 3 Voltage -Y solar panel voltage
15 13 realTime negZv 12 V cubesatsim_voltage|FLOAT2 -Z Panel 12 1 3 Voltage -Z solar panel voltage
16 14 realTime posXi 12 mA cubesatsim_current +X Panel 7 2 3 Current +X solar panel current
17 15 realTime posYi 12 mA cubesatsim_current +Y Panel 8 2 3 Current +Y solar panel current
18 16 realTime posZi 12 mA cubesatsim_current +Z Panel 9 2 3 Current +Z solar panel current
19 17 realTime negXi 12 mA cubesatsim_current -X Panel 10 2 3 Current -X solar panel current
20 18 realTime negYi 12 mA cubesatsim_current -Y Panel 11 2 3 Current -Y solar panel current
21 19 realTime negZi 12 mA cubesatsim_current -Z Panel 12 2 3 Current -Z solar panel current
22 20 realTime PSUVoltage 12 V cubesatsim_voltage|FLOAT2 PSU 5 1 3 Voltage Power Supply voltage
23 21 realTime spin 12 rpm cubesatsim_rpm Computer Software 3 1 3 Spacecraft Spin Calculated spin rate using solar cells
24 22 realTime Pressure 12 hPa cubesatsim_pressure Experiments 6 3 3 Pressure STEM Payload sensor pressure
25 23 realTime Altitude 12 m cubesatsim_altitude Experiments 6 4 3 Altitude STEM Payload sensor altitude
26 24 realTime Resets 12 - 12 NONE 3 2 3 Reset Count Software Reset Count
27 25 realTime rssi 12 dBm cubesatsim_rssi|INT Radio 1 1 3 RSSI Received Signal Strength Indication
28 26 realTime IHUcpuTemp 12 C cubesatsim_temperature Computer Hardware 2 1 3 Temperature Internal temperature of IHU from Pi
29 27 realTime SatelliteXAxisAngularVelocity 12 dps cubesatsim_rotation|INT +X Panel 7 3 3 Rotation Angular veolcity around X Axis
30 28 realTime SatelliteYAxisAngularVelocity 12 dps cubesatsim_rotation|INT +Y Panel 8 3 3 Rotation Angular veolcity around Y Axis
31 29 realTime SatelliteZAxisAngularVelocity 12 dps cubesatsim_rotation|INT +Z Panel 9 3 3 Rotation Angular veolcity around Z Axis
32 30 realTime Humidity 12 % cubesatsim_temperature Experiments 6 5 3 Humidity Humidity
33 31 realTime PSUCurrent 12 mA cubesatsim_current PSU 5 2 3 Current Power Supply DC Current
34 32 realTime Sensor1 12 signed raw cubesatsim_sensor2|INT Experiments 6 6 3 Sensor 1 STEM Payload extra Sensor 1
35 33 realTime Sensor2 12 signed scaled cubesatsim_sensor3|FLOAT2 Experiments 6 7 3 Sensor 2 STEM Payload extra Sensor 2
36 34 realTime STEMPayloadStatus 1 - 17 Experiments 6 1 0 STEM Payload STEM Payload STEM Payload board failure indicator
37 35 realTime Nominal Mode 1 - 17 Computer Software 3 2 0 Nominal Mode Nominal Mode (Not Safe Mode)
38 36 realTime SimulatedTelemetry 1 - 17 Computer Software 3 4 0 Simulated Telemetry Simulated Telemetry indicator
39 37 realTime PayloadStatus1 1 - 17 NONE 6 8 0 Exp 3 STEM Payload status 1 failure indicator
40 38 realTime I2CBus0Failure 1 - 17 Computer Hardware 2 2 0 I2C Bus 0 I2C bus 0 failure indicator
41 39 realTime I2CBus1Failure 1 - 17 Computer Hardware 2 3 0 I2C Bus 1 I2C bus 1 failure indicator
42 40 realTime I2CBus3Failure 1 - 17 Computer Hardware 2 4 0 I2C Bus 3 I2C bus 3 failure indicator
43 41 realTime CameraFailure 1 - 17 Computer Hardware 2 5 0 Camera Camera failure indicator
44 42 realTime GroundCommands 4 - 1 Computer Software 3 3 0 Ground Commands Number of ground commands received
45 43 realTime RxAntenna 1 - 16 Radio 1 3 0 RX Antenna Receive antenna status
46 44 realTime TxAntenna 2 - 16 Radio 1 2 0 TX Antenna Transmit antenna status
47 45 realTime ICR3VProt 12 V 43 NONE 7 2 3 3V Prot ICR 3V Proteted
48 46 realTime ICR2dot5V 12 V 43 NONE 7 3 3 2.5V ICR 2.5V
49 47 realTime ICR2dot5VProt 12 V 43 NONE 7 4 3 2.5V Prot ICR 2.5V Protected
50 48 realTime rf6 12 - 0 NONE 0 0 0 None None
51 49 realTime rf7 12 - 0 NONE 0 0 0 None None
52 50 realTime MuxTest 12 V 43 NONE 7 5 3 Sensor Power Sensor Power Voltage at the ICR
53 51 realTime LtVGACtl 12 V 42 NONE 1 4 3 VGA Control Control Voltage to the Variable Gain Amplifier (VGA)
54 52 realTime pad 4 - 34 NONE 0 0 0 None Unused
55 53 realTime IHUdiagData 32 - 18 NONE 3 2 0 Diagnostic Info Diagnostic Data on IHU Performance
56 54 realTime pad1 1 - 0 NONE 0 0 0 NONE Filler
57 55 realTime wodSize 8 000s 36 NONE 3 3 0 WOD Stored Number of WOD data payloads kept for each of Science and Housekeeping. In hundreds
58 56 realTime swCmds 32 - 35 NONE 7 6 0 Diagnostic ICR Diagnostic information
59 57 realTime hwCmdCnt 6 - 1 NONE 7 7 0 HW Command Count Number of hardware commands since last reset
60 58 realTime swCmdCnt 6 - 1 NONE 7 8 0 SW Command Count Number of software commands since last reset
61 59 realTime pad2 28 - 0 NONE 0 0 0 NONE Filler

@ -0,0 +1,13 @@
CurveName,a,bx,cx^2,dx^3,ex^4,fx^5,Description
cubesatsim_voltage,0,0.01,0,0,0,0,Converts voltages read from the INA219 sensors
cubesatsim_current,-2048,1,0,0,0,0,Converts positive and negative currents read from the INA219 sensors
cubesatsim_temperature,0,0.1,0,0,0,0,Converts temperature of Pi
cubesatsim_rotation,-2048,1,0,0,0,0,Converts positive and negative dps rotation
cubesatsim_acceleration,-20.48,0.01,0,0,0,0,Converts positive and negative g acceleration
cubesatsim_altitude,0,0.1,0,0,0,0,Converts altitude
cubesatsim_pressure,0,1,0,0,0,0,Converts pressure
cubesatsim_sensor1,0,1,0,0,0,0,Conversion of Sensor 1
cubesatsim_sensor2,-2048,1,0,0,0,0,Conversion of Sensor 2
cubesatsim_sensor3,-20.48,0.01,0,0,0,0,Conversion of Sensor 3
cubesatsim_rpm,-204.8,0.1,0,0,0,0,Conversion of calculated RPM
cubesatsim_rssi,-2048,1,0,0,0,0,Conversion of Received Signal Strength
1 CurveName a bx cx^2 dx^3 ex^4 fx^5 Description
2 cubesatsim_voltage 0 0.01 0 0 0 0 Converts voltages read from the INA219 sensors
3 cubesatsim_current -2048 1 0 0 0 0 Converts positive and negative currents read from the INA219 sensors
4 cubesatsim_temperature 0 0.1 0 0 0 0 Converts temperature of Pi
5 cubesatsim_rotation -2048 1 0 0 0 0 Converts positive and negative dps rotation
6 cubesatsim_acceleration -20.48 0.01 0 0 0 0 Converts positive and negative g acceleration
7 cubesatsim_altitude 0 0.1 0 0 0 0 Converts altitude
8 cubesatsim_pressure 0 1 0 0 0 0 Converts pressure
9 cubesatsim_sensor1 0 1 0 0 0 0 Conversion of Sensor 1
10 cubesatsim_sensor2 -2048 1 0 0 0 0 Conversion of Sensor 2
11 cubesatsim_sensor3 -20.48 0.01 0 0 0 0 Conversion of Sensor 3
12 cubesatsim_rpm -204.8 0.1 0 0 0 0 Conversion of calculated RPM
13 cubesatsim_rssi -2048 1 0 0 0 0 Conversion of Received Signal Strength

@ -0,0 +1,47 @@
46,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHOMAX_NAME,DESCRIPTION
0,MAX,BATT_A_V,12,V,cubesatsim_voltage|FLOAT2,NONE,0,0,3,Cell A,Battery A voltage (0-2.5V scale)
1,MAX,BATT_B_V,12,V,cubesatsim_voltage|FLOAT2,NONE,0,0,3,Cell A+B,Battery A+B voltage (0-3.3V scale)
2,MAX,BATT_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,1,3,Cell A+B+C Voltage,Battery A+B+C voltage (0-5.0V scale)
3,MAX,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,7,4,3,Acceleration,Acceleration around X Axis
4,MAX,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,8,4,3,Acceleration,Acceleration around Y Axis
5,MAX,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,9,4,3,Acceleration,Acceleration around Z Axis
6,MAX,TOTAL_BATT_I,12,mA,cubesatsim_current,NONE,4,2,3,Current,Total Battery DC current
7,MAX,Temperature,12,C,cubesatsim_temperature,NONE,6,2,3,Temperature,STEM Payload Sensor Temperature
8,MAX,PANEL_PLUS_X_V,12,V,cubesatsim_voltage|FLOAT2,NONE,7,1,3,Voltage,+X Panel
9,MAX,PANEL_MINUS_X_V,12,V,cubesatsim_voltage|FLOAT2,NONE,10,1,3,Voltage,-X Panel
10,MAX,PANEL_PLUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,NONE,8,1,3,Voltage,+Y Panel
11,MAX,PANEL_MINUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,NONE,11,1,3,Voltage,-Y Panel
12,MAX,PANEL_PLUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,NONE,9,1,3,Voltage,+Z Panel
13,MAX,PANEL_MINUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,NONE,12,1,3,Voltage,-Z Panel
14,MAX,PANEL_PLUS_X_I,12,mA,cubesatsim_current,NONE,7,2,3,Current,+X Panel
15,MAX,PANEL_MINUS_X_I,12,mA,cubesatsim_current,NONE,10,2,3,Current,-X Panel
16,MAX,PANEL_PLUS_Y_I,12,mA,cubesatsim_current,NONE,8,2,3,Current,+Y Panel
17,MAX,PANEL_MINUS_Y_I,12,mA,cubesatsim_current,NONE,11,2,3,Current,-Y Panel
18,MAX,PANEL_PLUS_Z_I,12,mA,cubesatsim_current,NONE,9,2,3,Current,+Z Panel
19,MAX,PANEL_MINUS_Z_I,12,mA,cubesatsim_current,NONE,12,2,3,Current,-Z Panel
20,MAX,PSUVoltage,12,V,cubesatsim_voltage|FLOAT2,NONE,5,1,3,Voltage,Power Supply Voltage
21,MAX,SPIN,12,rpm,cubesatsim_rpm,NONE,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
22,MAX,Pressure,12,bar,cubesatsim_pressure,NONE,6,3,3,Pressure,STEM Payload Sensor Pressure
23,MAX,Altitude,12,m,cubesatsim_altitude,NONE,6,4,3,Altitude,STEM Payload Sensor Altitude
24,MAX,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
25,MAX,RSSI,12,dBm,cubesatsim_rssi|INT,NONE,1,1,3,RSSI,Received Signal Strength Indication
26,MAX,IHUTemperature,12,C,cubesatsim_temperature,NONE,2,1,3,Temperature,Internal Temperature of IHU
27,MAX,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,7,3,3,Rotation,Angular Veolcity around X Axis
28,MAX,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,8,3,3,Rotation,Angular Veolcity around Y Axis
29,MAX,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,9,3,3,Rotation,Angular Veolcity around Z Axis
30,MAX,Humidity,12,%,cubesatsim_temperature,NONE,6,5,3,Sensor 1,STEM Payload Sensor Humidity
31,MAX,PSUCurrent,12,mA,cubesatsim_current,NONE,5,2,3,Current,Power Supply DC Current
32,MAX,Sensor1,12,signed raw,cubesatsim_sensor2|INT,NONE,6,6,3,Sensor 1,STEM Payload Extra Sensor 1
33,MAX,Sensor2,12,signed scaled,cubesatsim_sensor3|FLOAT2,NONE,6,7,3,Sensor 2,STEM Payload Extra Sensor 2
34,MAX,STEMPayloadStatus,1,-,17,NONE,6,1,0,STEM Payload Status,STEM Payload Board Status
35,MAX,Nominal Mode,1,-,17,NONE,3,2,0,Nominal Mode, Nominal Mode (Not Safe Mode)
36,MAX,PayloadStatus1,1,-,17,NONE,6,7,0,Exp 2,STEM Payload status 1 failure indicator
37,MAX,PayloadStatus2,1,-,17,NONE,6,8,0,Exp 3,STEM Payload status 2 failure indicator
38,MAX,I2CBus0Failure,1,-,17,NONE,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
39,MAX,I2CBus1Failure,1,-,17,NONE,2,3,0,I2C Bus 1,I2C bus 1 failure indicator
40,MAX,I2CBus3Failure,1,-,17,NONE,2,4,0,I2C Bus 3,I2C bus 3 failure indicator
41,MAX,CameraFailure,1,-,17,NONE,2,5,0,Camera,Camera failure indicator
42,MAX,GroundCommands,4,-,1,NONE,3,3,0,Ground Commands,Number of ground commands received
43,MAX,RXAntenna,1,-,16,NONE,1,3,0,RX Antenna,Receive antenna status
44,MAX,TXAntenna,1,-,16,NONE,1,2,0,TX Antenna,Transmit antenna status
45,MAX,Pad,58,-,0,NONE,0,0,0,NONE,NONE
1 46 TYPE FIELD BITS UNIT CONVERSION MODULE MODULE_NUM MODULE_LINE LINE_TYPE SHOMAX_NAME DESCRIPTION
2 0 MAX BATT_A_V 12 V cubesatsim_voltage|FLOAT2 NONE 0 0 3 Cell A Battery A voltage (0-2.5V scale)
3 1 MAX BATT_B_V 12 V cubesatsim_voltage|FLOAT2 NONE 0 0 3 Cell A+B Battery A+B voltage (0-3.3V scale)
4 2 MAX BATT_V 12 V cubesatsim_voltage|FLOAT2 NONE 4 1 3 Cell A+B+C Voltage Battery A+B+C voltage (0-5.0V scale)
5 3 MAX SatelliteXAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 7 4 3 Acceleration Acceleration around X Axis
6 4 MAX SatelliteYAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 8 4 3 Acceleration Acceleration around Y Axis
7 5 MAX SatelliteZAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 9 4 3 Acceleration Acceleration around Z Axis
8 6 MAX TOTAL_BATT_I 12 mA cubesatsim_current NONE 4 2 3 Current Total Battery DC current
9 7 MAX Temperature 12 C cubesatsim_temperature NONE 6 2 3 Temperature STEM Payload Sensor Temperature
10 8 MAX PANEL_PLUS_X_V 12 V cubesatsim_voltage|FLOAT2 NONE 7 1 3 Voltage +X Panel
11 9 MAX PANEL_MINUS_X_V 12 V cubesatsim_voltage|FLOAT2 NONE 10 1 3 Voltage -X Panel
12 10 MAX PANEL_PLUS_Y_V 12 V cubesatsim_voltage|FLOAT2 NONE 8 1 3 Voltage +Y Panel
13 11 MAX PANEL_MINUS_Y_V 12 V cubesatsim_voltage|FLOAT2 NONE 11 1 3 Voltage -Y Panel
14 12 MAX PANEL_PLUS_Z_V 12 V cubesatsim_voltage|FLOAT2 NONE 9 1 3 Voltage +Z Panel
15 13 MAX PANEL_MINUS_Z_V 12 V cubesatsim_voltage|FLOAT2 NONE 12 1 3 Voltage -Z Panel
16 14 MAX PANEL_PLUS_X_I 12 mA cubesatsim_current NONE 7 2 3 Current +X Panel
17 15 MAX PANEL_MINUS_X_I 12 mA cubesatsim_current NONE 10 2 3 Current -X Panel
18 16 MAX PANEL_PLUS_Y_I 12 mA cubesatsim_current NONE 8 2 3 Current +Y Panel
19 17 MAX PANEL_MINUS_Y_I 12 mA cubesatsim_current NONE 11 2 3 Current -Y Panel
20 18 MAX PANEL_PLUS_Z_I 12 mA cubesatsim_current NONE 9 2 3 Current +Z Panel
21 19 MAX PANEL_MINUS_Z_I 12 mA cubesatsim_current NONE 12 2 3 Current -Z Panel
22 20 MAX PSUVoltage 12 V cubesatsim_voltage|FLOAT2 NONE 5 1 3 Voltage Power Supply Voltage
23 21 MAX SPIN 12 rpm cubesatsim_rpm NONE 3 1 3 Spacecraft Spin Calculated spin rate using solar cells
24 22 MAX Pressure 12 bar cubesatsim_pressure NONE 6 3 3 Pressure STEM Payload Sensor Pressure
25 23 MAX Altitude 12 m cubesatsim_altitude NONE 6 4 3 Altitude STEM Payload Sensor Altitude
26 24 MAX Resets 12 - 12 NONE 3 2 3 Reset Count Software Reset Count
27 25 MAX RSSI 12 dBm cubesatsim_rssi|INT NONE 1 1 3 RSSI Received Signal Strength Indication
28 26 MAX IHUTemperature 12 C cubesatsim_temperature NONE 2 1 3 Temperature Internal Temperature of IHU
29 27 MAX SatelliteXAxisAngularVelocity 12 dps cubesatsim_rotation|INT NONE 7 3 3 Rotation Angular Veolcity around X Axis
30 28 MAX SatelliteYAxisAngularVelocity 12 dps cubesatsim_rotation|INT NONE 8 3 3 Rotation Angular Veolcity around Y Axis
31 29 MAX SatelliteZAxisAngularVelocity 12 dps cubesatsim_rotation|INT NONE 9 3 3 Rotation Angular Veolcity around Z Axis
32 30 MAX Humidity 12 % cubesatsim_temperature NONE 6 5 3 Sensor 1 STEM Payload Sensor Humidity
33 31 MAX PSUCurrent 12 mA cubesatsim_current NONE 5 2 3 Current Power Supply DC Current
34 32 MAX Sensor1 12 signed raw cubesatsim_sensor2|INT NONE 6 6 3 Sensor 1 STEM Payload Extra Sensor 1
35 33 MAX Sensor2 12 signed scaled cubesatsim_sensor3|FLOAT2 NONE 6 7 3 Sensor 2 STEM Payload Extra Sensor 2
36 34 MAX STEMPayloadStatus 1 - 17 NONE 6 1 0 STEM Payload Status STEM Payload Board Status
37 35 MAX Nominal Mode 1 - 17 NONE 3 2 0 Nominal Mode Nominal Mode (Not Safe Mode)
38 36 MAX PayloadStatus1 1 - 17 NONE 6 7 0 Exp 2 STEM Payload status 1 failure indicator
39 37 MAX PayloadStatus2 1 - 17 NONE 6 8 0 Exp 3 STEM Payload status 2 failure indicator
40 38 MAX I2CBus0Failure 1 - 17 NONE 2 2 0 I2C Bus 0 I2C bus 0 failure indicator
41 39 MAX I2CBus1Failure 1 - 17 NONE 2 3 0 I2C Bus 1 I2C bus 1 failure indicator
42 40 MAX I2CBus3Failure 1 - 17 NONE 2 4 0 I2C Bus 3 I2C bus 3 failure indicator
43 41 MAX CameraFailure 1 - 17 NONE 2 5 0 Camera Camera failure indicator
44 42 MAX GroundCommands 4 - 1 NONE 3 3 0 Ground Commands Number of ground commands received
45 43 MAX RXAntenna 1 - 16 NONE 1 3 0 RX Antenna Receive antenna status
46 44 MAX TXAntenna 1 - 16 NONE 1 2 0 TX Antenna Transmit antenna status
47 45 MAX Pad 58 - 0 NONE 0 0 0 NONE NONE

@ -0,0 +1,47 @@
46,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHOMIN_NAME,DESCRIPTION
0,MIN,BATT_A_V,12,V,cubesatsim_voltage|FLOAT2,NONE,0,0,3,Cell A,Battery A voltage (0-2.5V scale)
1,MIN,BATT_B_V,12,V,cubesatsim_voltage|FLOAT2,NONE,0,0,3,Cell A+B,Battery A+B voltage (0-3.3V scale)
2,MIN,BATT_V,12,V,cubesatsim_voltage|FLOAT2,NONE,4,1,3,Cell A+B+C Voltage,Battery A+B+C voltage (0-5.0V scale)
3,MIN,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,7,4,3,Acceleration,Acceleration around X Axis
4,MIN,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,8,4,3,Acceleration,Acceleration around Y Axis
5,MIN,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,NONE,9,4,3,Acceleration,Acceleration around Z Axis
6,MIN,TOTAL_BATT_I,12,mA,cubesatsim_current,NONE,4,2,3,Current,Total Battery DC current
7,MIN,Temperature,12,C,cubesatsim_temperature,NONE,6,2,3,Temperature,STEM Payload Sensor Temperature
8,MIN,PANEL_PLUS_X_V,12,V,cubesatsim_voltage|FLOAT2,NONE,7,1,3,Voltage,+X Panel
9,MIN,PANEL_MINUS_X_V,12,V,cubesatsim_voltage|FLOAT2,NONE,10,1,3,Voltage,-X Panel
10,MIN,PANEL_PLUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,NONE,8,1,3,Voltage,+Y Panel
11,MIN,PANEL_MINUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,NONE,11,1,3,Voltage,-Y Panel
12,MIN,PANEL_PLUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,NONE,9,1,3,Voltage,+Z Panel
13,MIN,PANEL_MINUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,NONE,12,1,3,Voltage,-Z Panel
14,MIN,PANEL_PLUS_X_I,12,mA,cubesatsim_current,NONE,7,2,3,Current,+X Panel
15,MIN,PANEL_MINUS_X_I,12,mA,cubesatsim_current,NONE,10,2,3,Current,-X Panel
16,MIN,PANEL_PLUS_Y_I,12,mA,cubesatsim_current,NONE,8,2,3,Current,+Y Panel
17,MIN,PANEL_MINUS_Y_I,12,mA,cubesatsim_current,NONE,11,2,3,Current,-Y Panel
18,MIN,PANEL_PLUS_Z_I,12,mA,cubesatsim_current,NONE,9,2,3,Current,+Z Panel
19,MIN,PANEL_MINUS_Z_I,12,mA,cubesatsim_current,NONE,12,2,3,Current,-Z Panel
20,MIN,PSUVoltage,12,V,cubesatsim_voltage|FLOAT2,NONE,5,1,3,Voltage,Power Supply Voltage
21,MIN,SPIN,12,rpm,cubesatsim_rpm,NONE,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
22,MIN,Pressure,12,bar,cubesatsim_pressure,NONE,6,3,3,Pressure,STEM Payload Sensor Pressure
23,MIN,Altitude,12,m,cubesatsim_altitude,NONE,6,4,3,Altitude,STEM Payload Sensor Altitude
24,MIN,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
25,MIN,RSSI,12,dBm,cubesatsim_rssi|INT,NONE,1,1,3,RSSI,Received Signal Strength Indication
26,MIN,IHUTemperature,12,C,cubesatsim_temperature,NONE,2,1,3,Temperature,Internal Temperature of IHU
27,MIN,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,7,3,3,Rotation,Angular Veolcity around X Axis
28,MIN,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,8,3,3,Rotation,Angular Veolcity around Y Axis
29,MIN,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,NONE,9,3,3,Rotation,Angular Veolcity around Z Axis
30,MIN,Humidity,12,%,cubesatsim_temperature,NONE,6,5,3,Humidity,STEM Payload Sensor Humidity
31,MIN,PSUCurrent,12,mA,cubesatsim_current,NONE,5,2,3,Current,Power Supply DC Current
32,MIN,Sensor1,12,signed raw,cubesatsim_sensor2|INT,NONE,6,6,3,Sensor 1,STEM Payload Extra Sensor 1
33,MIN,Sensor2,12,signed scaled,cubesatsim_sensor3|FLOAT2,NONE,6,7,3,Sensor 2,STEM Payload Extra Sensor 2
34,MIN,STEMPayloadStatus,1,-,17,NONE,6,1,0,STEM Payload Status,STEM Payload Board Status
35,MIN,Nominal Mode,1,-,17,NONE,3,2,0,Nominal Mode, Nominal Mode (Not Safe Mode)
36,MIN,PayloadStatus1,1,-,17,NONE,6,7,0,Exp 2,STEM Payload status 1 failure indicator
37,MIN,PayloadStatus2,1,-,17,NONE,6,8,0,Exp 3,STEM Payload status 2 failure indicator
38,MIN,I2CBus0Failure,1,-,17,NONE,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
39,MIN,I2CBus1Failure,1,-,17,NONE,2,3,0,I2C Bus 1,I2C bus 1 failure indicator
40,MIN,I2CBus3Failure,1,-,17,NONE,2,4,0,I2C Bus 3,I2C bus 3 failure indicator
41,MIN,CameraFailure,1,-,17,NONE,2,5,0,Camera,Camera failure indicator
42,MIN,GroundCommands,4,-,1,NONE,3,3,0,Ground Commands,Number of ground commands received
43,MIN,RXAntenna,1,-,16,NONE,1,3,0,RX Antenna,Receive antenna status
44,MIN,TXAntenna,1,-,16,NONE,1,2,0,TX Antenna,Transmit antenna status
45,MIN,Pad,58,-,0,NONE,0,0,0,NONE,NONE
1 46 TYPE FIELD BITS UNIT CONVERSION MODULE MODULE_NUM MODULE_LINE LINE_TYPE SHOMIN_NAME DESCRIPTION
2 0 MIN BATT_A_V 12 V cubesatsim_voltage|FLOAT2 NONE 0 0 3 Cell A Battery A voltage (0-2.5V scale)
3 1 MIN BATT_B_V 12 V cubesatsim_voltage|FLOAT2 NONE 0 0 3 Cell A+B Battery A+B voltage (0-3.3V scale)
4 2 MIN BATT_V 12 V cubesatsim_voltage|FLOAT2 NONE 4 1 3 Cell A+B+C Voltage Battery A+B+C voltage (0-5.0V scale)
5 3 MIN SatelliteXAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 7 4 3 Acceleration Acceleration around X Axis
6 4 MIN SatelliteYAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 8 4 3 Acceleration Acceleration around Y Axis
7 5 MIN SatelliteZAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 NONE 9 4 3 Acceleration Acceleration around Z Axis
8 6 MIN TOTAL_BATT_I 12 mA cubesatsim_current NONE 4 2 3 Current Total Battery DC current
9 7 MIN Temperature 12 C cubesatsim_temperature NONE 6 2 3 Temperature STEM Payload Sensor Temperature
10 8 MIN PANEL_PLUS_X_V 12 V cubesatsim_voltage|FLOAT2 NONE 7 1 3 Voltage +X Panel
11 9 MIN PANEL_MINUS_X_V 12 V cubesatsim_voltage|FLOAT2 NONE 10 1 3 Voltage -X Panel
12 10 MIN PANEL_PLUS_Y_V 12 V cubesatsim_voltage|FLOAT2 NONE 8 1 3 Voltage +Y Panel
13 11 MIN PANEL_MINUS_Y_V 12 V cubesatsim_voltage|FLOAT2 NONE 11 1 3 Voltage -Y Panel
14 12 MIN PANEL_PLUS_Z_V 12 V cubesatsim_voltage|FLOAT2 NONE 9 1 3 Voltage +Z Panel
15 13 MIN PANEL_MINUS_Z_V 12 V cubesatsim_voltage|FLOAT2 NONE 12 1 3 Voltage -Z Panel
16 14 MIN PANEL_PLUS_X_I 12 mA cubesatsim_current NONE 7 2 3 Current +X Panel
17 15 MIN PANEL_MINUS_X_I 12 mA cubesatsim_current NONE 10 2 3 Current -X Panel
18 16 MIN PANEL_PLUS_Y_I 12 mA cubesatsim_current NONE 8 2 3 Current +Y Panel
19 17 MIN PANEL_MINUS_Y_I 12 mA cubesatsim_current NONE 11 2 3 Current -Y Panel
20 18 MIN PANEL_PLUS_Z_I 12 mA cubesatsim_current NONE 9 2 3 Current +Z Panel
21 19 MIN PANEL_MINUS_Z_I 12 mA cubesatsim_current NONE 12 2 3 Current -Z Panel
22 20 MIN PSUVoltage 12 V cubesatsim_voltage|FLOAT2 NONE 5 1 3 Voltage Power Supply Voltage
23 21 MIN SPIN 12 rpm cubesatsim_rpm NONE 3 1 3 Spacecraft Spin Calculated spin rate using solar cells
24 22 MIN Pressure 12 bar cubesatsim_pressure NONE 6 3 3 Pressure STEM Payload Sensor Pressure
25 23 MIN Altitude 12 m cubesatsim_altitude NONE 6 4 3 Altitude STEM Payload Sensor Altitude
26 24 MIN Resets 12 - 12 NONE 3 2 3 Reset Count Software Reset Count
27 25 MIN RSSI 12 dBm cubesatsim_rssi|INT NONE 1 1 3 RSSI Received Signal Strength Indication
28 26 MIN IHUTemperature 12 C cubesatsim_temperature NONE 2 1 3 Temperature Internal Temperature of IHU
29 27 MIN SatelliteXAxisAngularVelocity 12 dps cubesatsim_rotation|INT NONE 7 3 3 Rotation Angular Veolcity around X Axis
30 28 MIN SatelliteYAxisAngularVelocity 12 dps cubesatsim_rotation|INT NONE 8 3 3 Rotation Angular Veolcity around Y Axis
31 29 MIN SatelliteZAxisAngularVelocity 12 dps cubesatsim_rotation|INT NONE 9 3 3 Rotation Angular Veolcity around Z Axis
32 30 MIN Humidity 12 % cubesatsim_temperature NONE 6 5 3 Humidity STEM Payload Sensor Humidity
33 31 MIN PSUCurrent 12 mA cubesatsim_current NONE 5 2 3 Current Power Supply DC Current
34 32 MIN Sensor1 12 signed raw cubesatsim_sensor2|INT NONE 6 6 3 Sensor 1 STEM Payload Extra Sensor 1
35 33 MIN Sensor2 12 signed scaled cubesatsim_sensor3|FLOAT2 NONE 6 7 3 Sensor 2 STEM Payload Extra Sensor 2
36 34 MIN STEMPayloadStatus 1 - 17 NONE 6 1 0 STEM Payload Status STEM Payload Board Status
37 35 MIN Nominal Mode 1 - 17 NONE 3 2 0 Nominal Mode Nominal Mode (Not Safe Mode)
38 36 MIN PayloadStatus1 1 - 17 NONE 6 7 0 Exp 2 STEM Payload status 1 failure indicator
39 37 MIN PayloadStatus2 1 - 17 NONE 6 8 0 Exp 3 STEM Payload status 2 failure indicator
40 38 MIN I2CBus0Failure 1 - 17 NONE 2 2 0 I2C Bus 0 I2C bus 0 failure indicator
41 39 MIN I2CBus1Failure 1 - 17 NONE 2 3 0 I2C Bus 1 I2C bus 1 failure indicator
42 40 MIN I2CBus3Failure 1 - 17 NONE 2 4 0 I2C Bus 3 I2C bus 3 failure indicator
43 41 MIN CameraFailure 1 - 17 NONE 2 5 0 Camera Camera failure indicator
44 42 MIN GroundCommands 4 - 1 NONE 3 3 0 Ground Commands Number of ground commands received
45 43 MIN RXAntenna 1 - 16 NONE 1 3 0 RX Antenna Receive antenna status
46 44 MIN TXAntenna 1 - 16 NONE 1 2 0 TX Antenna Transmit antenna status
47 45 MIN Pad 58 - 0 NONE 0 0 0 NONE NONE

@ -0,0 +1,47 @@
46,TYPE,FIELD,BITS,UNIT,CONVERSION,MODULE,MODULE_NUM,MODULE_LINE,LINE_TYPE,SHORT_NAME,DESCRIPTION
0,RT,BATT_A_V,12,V,cubesatsim_voltage|FLOAT2,NONE,0,0,3,Cell A,Battery A voltage (0-2.5V scale)
1,RT,BATT_B_V,12,V,cubesatsim_voltage|FLOAT2,NONE,0,0,3,Cell A+B,Battery A+B voltage (0-3.3V scale)
2,RT,BATT_V,12,V,cubesatsim_voltage|FLOAT2,Battery,4,1,3,Cell A+B+C Voltage,Battery A+B+C voltage (0-5.0V scale)
3,RT,SatelliteXAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+X Panel,7,4,3,Acceleration,Acceleration around X Axis
4,RT,SatelliteYAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+Y Panel,8,4,3,Acceleration,Acceleration around Y Axis
5,RT,SatelliteZAxisAcceleration,12,g,cubesatsim_acceleration|FLOAT2,+Z Panel,9,4,3,Acceleration,Acceleration around Z Axis
6,RT,TOTAL_BATT_I,12,mA,cubesatsim_current,Battery,4,2,3,Current,Total Battery DC current
7,RT,Temperature,12,C,cubesatsim_temperature,Experiments,6,2,3,Temperature,STEM Payload Sensor Temperature
8,RT,PANEL_PLUS_X_V,12,V,cubesatsim_voltage|FLOAT2,+X Panel,7,1,3,Voltage,+X Panel
9,RT,PANEL_MINUS_X_V,12,V,cubesatsim_voltage|FLOAT2,-X Panel,10,1,3,Voltage,-X Panel
10,RT,PANEL_PLUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,+Y Panel,8,1,3,Voltage,+Y Panel
11,RT,PANEL_MINUS_Y_V,12,V,cubesatsim_voltage|FLOAT2,-Y Panel,11,1,3,Voltage,-Y Panel
12,RT,PANEL_PLUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,+Z Panel,9,1,3,Voltage,+Z Panel
13,RT,PANEL_MINUS_Z_V,12,V,cubesatsim_voltage|FLOAT2,-Z Panel,12,1,3,Voltage,-Z Panel
14,RT,PANEL_PLUS_X_I,12,mA,cubesatsim_current,+X Panel,7,2,3,Current,+X Panel
15,RT,PANEL_MINUS_X_I,12,mA,cubesatsim_current,-X Panel,10,2,3,Current,-X Panel
16,RT,PANEL_PLUS_Y_I,12,mA,cubesatsim_current,+Y Panel,8,2,3,Current,+Y Panel
17,RT,PANEL_MINUS_Y_I,12,mA,cubesatsim_current,-Y Panel,11,2,3,Current,-Y Panel
18,RT,PANEL_PLUS_Z_I,12,mA,cubesatsim_current,+Z Panel,9,2,3,Current,+Z Panel
19,RT,PANEL_MINUS_Z_I,12,mA,cubesatsim_current,-Z Panel,12,2,3,Current,-Z Panel
20,RT,PSUVoltage,12,V,cubesatsim_voltage|FLOAT2,PSU,5,1,3,Voltage,Power Supply Voltage
21,RT,SPIN,12,rpm,cubesatsim_rpm,Computer Software,3,1,3,Spacecraft Spin,Calculated spin rate using solar cells
22,RT,Pressure,12,bar,cubesatsim_pressure,Experiments,6,3,3,Pressure,STEM Payload Sensor Pressure
23,RT,Altitude,12,m,cubesatsim_altitude,Experiments,6,4,3,Altitude,STEM Payload Sensor Altitude
24,RT,Resets,12,-,12,NONE,3,2,3,Reset Count, Software Reset Count
25,RT,RSSI,12,dBm,cubesatsim_rssi|INT,Radio,1,1,3,RSSI,Received Signal Strength Indication
26,RT,IHUTemperature,12,C,cubesatsim_temperature,Computer Hardware,2,1,3,Temperature,Internal Temperature of IHU
27,RT,SatelliteXAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+X Panel,7,3,3,Rotation,Angular Veolcity around X Axis
28,RT,SatelliteYAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+Y Panel,8,3,3,Rotation,Angular Veolcity around Y Axis
29,RT,SatelliteZAxisAngularVelocity,12,dps,cubesatsim_rotation|INT,+Z Panel,9,3,3,Rotation,Angular Veolcity around Z Axis
30,RT,Humidity,12,%,cubesatsim_temperature,Experiments,6,5,3,Humidity,STEM Payload Sensor Humidity
31,RT,PSUCurrent,12,mA,cubesatsim_current,PSU,5,2,3,Current,Power Supply DC Current
32,RT,Sensor1,12,signed raw,cubesatsim_sensor2|INT,Experiments,6,6,3,Sensor 1,STEM Payload Extra Sensor 1
33,RT,Sensor2,12,signed scaled,cubesatsim_sensor3|FLOAT2,Experiments,6,7,3,Sensor 2,STEM Payload Extra Sensor 2
34,RT,STEMPayloadStatus,1,-,17,Experiments,6,1,0,STEM Payload,STEM Payload Board Status
35,RT,Nominal Mode,1,-,17,Computer Software,3,2,0,Nominal Mode, Nominal Mode (Not Safe Mode)
36,RT,SimulatedTelemetry,1,-,17,Computer Software,3,4,0,Simulated Telemetry, Simulated Telemetry indicator
37,RT,PayloadStatus1,1,-,17,NONE,6,8,0,Exp 3,STEM Payload status 1 failure indicator
38,RT,I2CBus0Failure,1,-,17,Computer Hardware,2,2,0,I2C Bus 0,I2C bus 0 failure indicator
39,RT,I2CBus1Failure,1,-,17,Computer Hardware,2,3,0,I2C Bus 1,I2C bus 1 failure indicator
40,RT,I2CBus3Failure,1,-,17,Computer Hardware,2,4,0,I2C Bus 3,I2C bus 3 failure indicator
41,RT,CameraFailure,1,-,17,Computer Hardware,2,5,0,Camera,Camera failure indicator
42,RT,GroundCommands,4,-,1,Computer Software,3,3,0,Ground Commands,Number of ground commands received
43,RT,RXAntenna,1,-,16,Radio,1,3,0,RX Antenna,Receive antenna status
44,RT,TXAntenna,1,-,16,Radio,1,2,0,TX Antenna,Transmit antenna status
45,RT,Pad,58,-,0,NONE,0,0,0,NONE,NONE
1 46 TYPE FIELD BITS UNIT CONVERSION MODULE MODULE_NUM MODULE_LINE LINE_TYPE SHORT_NAME DESCRIPTION
2 0 RT BATT_A_V 12 V cubesatsim_voltage|FLOAT2 NONE 0 0 3 Cell A Battery A voltage (0-2.5V scale)
3 1 RT BATT_B_V 12 V cubesatsim_voltage|FLOAT2 NONE 0 0 3 Cell A+B Battery A+B voltage (0-3.3V scale)
4 2 RT BATT_V 12 V cubesatsim_voltage|FLOAT2 Battery 4 1 3 Cell A+B+C Voltage Battery A+B+C voltage (0-5.0V scale)
5 3 RT SatelliteXAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 +X Panel 7 4 3 Acceleration Acceleration around X Axis
6 4 RT SatelliteYAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 +Y Panel 8 4 3 Acceleration Acceleration around Y Axis
7 5 RT SatelliteZAxisAcceleration 12 g cubesatsim_acceleration|FLOAT2 +Z Panel 9 4 3 Acceleration Acceleration around Z Axis
8 6 RT TOTAL_BATT_I 12 mA cubesatsim_current Battery 4 2 3 Current Total Battery DC current
9 7 RT Temperature 12 C cubesatsim_temperature Experiments 6 2 3 Temperature STEM Payload Sensor Temperature
10 8 RT PANEL_PLUS_X_V 12 V cubesatsim_voltage|FLOAT2 +X Panel 7 1 3 Voltage +X Panel
11 9 RT PANEL_MINUS_X_V 12 V cubesatsim_voltage|FLOAT2 -X Panel 10 1 3 Voltage -X Panel
12 10 RT PANEL_PLUS_Y_V 12 V cubesatsim_voltage|FLOAT2 +Y Panel 8 1 3 Voltage +Y Panel
13 11 RT PANEL_MINUS_Y_V 12 V cubesatsim_voltage|FLOAT2 -Y Panel 11 1 3 Voltage -Y Panel
14 12 RT PANEL_PLUS_Z_V 12 V cubesatsim_voltage|FLOAT2 +Z Panel 9 1 3 Voltage +Z Panel
15 13 RT PANEL_MINUS_Z_V 12 V cubesatsim_voltage|FLOAT2 -Z Panel 12 1 3 Voltage -Z Panel
16 14 RT PANEL_PLUS_X_I 12 mA cubesatsim_current +X Panel 7 2 3 Current +X Panel
17 15 RT PANEL_MINUS_X_I 12 mA cubesatsim_current -X Panel 10 2 3 Current -X Panel
18 16 RT PANEL_PLUS_Y_I 12 mA cubesatsim_current +Y Panel 8 2 3 Current +Y Panel
19 17 RT PANEL_MINUS_Y_I 12 mA cubesatsim_current -Y Panel 11 2 3 Current -Y Panel
20 18 RT PANEL_PLUS_Z_I 12 mA cubesatsim_current +Z Panel 9 2 3 Current +Z Panel
21 19 RT PANEL_MINUS_Z_I 12 mA cubesatsim_current -Z Panel 12 2 3 Current -Z Panel
22 20 RT PSUVoltage 12 V cubesatsim_voltage|FLOAT2 PSU 5 1 3 Voltage Power Supply Voltage
23 21 RT SPIN 12 rpm cubesatsim_rpm Computer Software 3 1 3 Spacecraft Spin Calculated spin rate using solar cells
24 22 RT Pressure 12 bar cubesatsim_pressure Experiments 6 3 3 Pressure STEM Payload Sensor Pressure
25 23 RT Altitude 12 m cubesatsim_altitude Experiments 6 4 3 Altitude STEM Payload Sensor Altitude
26 24 RT Resets 12 - 12 NONE 3 2 3 Reset Count Software Reset Count
27 25 RT RSSI 12 dBm cubesatsim_rssi|INT Radio 1 1 3 RSSI Received Signal Strength Indication
28 26 RT IHUTemperature 12 C cubesatsim_temperature Computer Hardware 2 1 3 Temperature Internal Temperature of IHU
29 27 RT SatelliteXAxisAngularVelocity 12 dps cubesatsim_rotation|INT +X Panel 7 3 3 Rotation Angular Veolcity around X Axis
30 28 RT SatelliteYAxisAngularVelocity 12 dps cubesatsim_rotation|INT +Y Panel 8 3 3 Rotation Angular Veolcity around Y Axis
31 29 RT SatelliteZAxisAngularVelocity 12 dps cubesatsim_rotation|INT +Z Panel 9 3 3 Rotation Angular Veolcity around Z Axis
32 30 RT Humidity 12 % cubesatsim_temperature Experiments 6 5 3 Humidity STEM Payload Sensor Humidity
33 31 RT PSUCurrent 12 mA cubesatsim_current PSU 5 2 3 Current Power Supply DC Current
34 32 RT Sensor1 12 signed raw cubesatsim_sensor2|INT Experiments 6 6 3 Sensor 1 STEM Payload Extra Sensor 1
35 33 RT Sensor2 12 signed scaled cubesatsim_sensor3|FLOAT2 Experiments 6 7 3 Sensor 2 STEM Payload Extra Sensor 2
36 34 RT STEMPayloadStatus 1 - 17 Experiments 6 1 0 STEM Payload STEM Payload Board Status
37 35 RT Nominal Mode 1 - 17 Computer Software 3 2 0 Nominal Mode Nominal Mode (Not Safe Mode)
38 36 RT SimulatedTelemetry 1 - 17 Computer Software 3 4 0 Simulated Telemetry Simulated Telemetry indicator
39 37 RT PayloadStatus1 1 - 17 NONE 6 8 0 Exp 3 STEM Payload status 1 failure indicator
40 38 RT I2CBus0Failure 1 - 17 Computer Hardware 2 2 0 I2C Bus 0 I2C bus 0 failure indicator
41 39 RT I2CBus1Failure 1 - 17 Computer Hardware 2 3 0 I2C Bus 1 I2C bus 1 failure indicator
42 40 RT I2CBus3Failure 1 - 17 Computer Hardware 2 4 0 I2C Bus 3 I2C bus 3 failure indicator
43 41 RT CameraFailure 1 - 17 Computer Hardware 2 5 0 Camera Camera failure indicator
44 42 RT GroundCommands 4 - 1 Computer Software 3 3 0 Ground Commands Number of ground commands received
45 43 RT RXAntenna 1 - 16 Radio 1 3 0 RX Antenna Receive antenna status
46 44 RT TXAntenna 1 - 16 Radio 1 2 0 TX Antenna Transmit antenna status
47 45 RT Pad 58 - 0 NONE 0 0 0 NONE NONE

@ -0,0 +1,72 @@
#Fox 1 Telemetry Decoder Properties
#Thu Apr 11 13:23:23 EST 2020
user_mode=4
foxId=99
IHU_SN=7
catalogNumber=0
model=0
mpptResistanceError=6.58
mpptSensorOffThreshold=1600
name=CubeSatSim
displayName=CubeSatSim-BPSK
BATTERY_CURRENT_ZERO=-1.834
hasImprovedCommandReceiver=true
EXP1=0
EXP2=0
EXP3=0
EXP4=0
description=CubeSatSim, the AMSAT CubeSat Simulator, is a functional satellite model that generates real telemetry from solar panels, batteries, and temperature sensors. Use this for BPSK telemetry. For more information see http://cubesatsim.org
numberOfFrameLayouts=5
frameLayout0.filename=FOX1E_Type0_ALL_WOD.frame
frameLayout0.name=All WOD
frameLayout1.filename=CubeSatSim_PSK_Type1_HEALTH.frame
frameLayout1.name=Health
frameLayout2.filename=CubeSatSim_PSK_Type2_MINMAX.frame
frameLayout2.name=MinMax
frameLayout3.filename=FOX1E_Type3_REALTIME_BEACON.frame
frameLayout3.name=Realtime Beacon
frameLayout4.filename=FOX1E_Type4_WOD_BEACON.frame
frameLayout4.name=WOD Beacon
numberOfLayouts=9
layout0.filename=FOX1A_debug.csv
layout0.name=DEBUG
layout1.filename=CubeSatSim_PSK_maxtelemetry.csv
layout1.name=maxtelemetry
layout2.filename=CubeSatSim_PSK_rttelemetry.csv
layout2.name=rttelemetry
layout3.filename=CubeSatSim_PSK_mintelemetry.csv
layout3.name=mintelemetry
layout4.filename=FOX1E_radtelemetry.csv
layout4.name=radtelemetry
layout5.filename=FOX1E_radtelemetry2.csv
layout5.name=radtelemetry2
layout5.parentLayout=radtelemetry
layout6.filename=CubeSatSim_PSK_wodtelemetry.csv
layout6.name=wodtelemetry
layout7.filename=FOX1E_wodradtelemetry.csv
layout7.name=wodradtelemetry
layout8.filename=FOX1E_wodradtelemetry2.csv
layout8.name=wodradtelemetry2
layout8.parentLayout=wodradtelemetry
numberOfLookupTables=3
lookupTable0.filename=FOX1A_rssiFM.tab
lookupTable0=RSSI
lookupTable1.filename=FOX1E_ihuVBattSNx.tab
lookupTable1=IHU_VBATT
lookupTable2.filename=FOX1A_ihutempSN7.tab
lookupTable2=IHU_TEMP
maxFreqBoundkHz=434950
measurementsFileName=measurements.csv
memsRestValueX=2129
memsRestValueY=2131
memsRestValueZ=2103
minFreqBoundkHz=434850
passMeasurementsFileName=passmeasurements.csv
telemetryDownlinkFreqkHz=434900
track=false
useIHUVBatt=false
numberOfSources=1
source0.name=amsat.cubesat_simulator.ihu.bpsk
user_format=0
useConversionCoeffs=true
conversionCurvesFileName=CubeSatSim_conversion_curves.csv

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@ -10,6 +10,8 @@ StandardOutput=inherit
StandardError=inherit
Restart=always
User=root
CPUAccounting=true
CPUQuota=5%
[Install]
WantedBy=default.target

125
update

@ -0,0 +1,125 @@
#!/bin/bash
echo -e "\nupdate script for CubeSatSim\n"
if [ "$1" = "u" ]; then
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo apt-get install -y wiringpi git libasound2-dev i2c-tools cpulimit python-picamera python3-picamera build-essential libgd-dev libmagic-dev
fi
sudo sed -i 's/update.sh/update /g' /etc/motd
sudo sed -i 's/installed and/installed\nand/g' /etc/motd
sudo sed -i 's/more information/more\ninformation/g' /etc/motd
sudo sed -i 's/update to/update\nto/g' /etc/motd
cd /home/pi/CubeSatSim
git pull > .updated
make debug
FLAG=0
if [[ $(diff systemd/cubesatsim.service /etc/systemd/system/cubesatsim.service) ]]; then
echo "changed cubesatsim.service"
sudo cp /home/pi/CubeSatSim/systemd/cubesatsim.service /etc/systemd/system/cubesatsim.service
FLAG=1
else
echo "no changes to cubesatsim.service"
fi
if [[ $(diff systemd/rpitx.service /etc/systemd/system/rpitx.service) ]]; then
echo "changed rpitx.service"
sudo cp /home/pi/CubeSatSim/systemd/rpitx.service /etc/systemd/system/rpitx.service
FLAG=1
else
echo "no changes to rpitx.service"
fi
FILE=/home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg
if [ ! -f "$FILE" ]; then
echo "Copying SSTV image 1"
cp /home/pi/CubeSatSim/sstv/sstv_image_1_320_x_256.jpg /home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg
fi
FILE=/home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg
if [ ! -f "$FILE" ]; then
echo "Copying SSTV image 2"
cp /home/pi/CubeSatSim/sstv/sstv_image_2_320_x_256.jpg /home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg
fi
grep 'update' /home/pi/CubeSatSim/.updated
if [[ $(grep 'update' /home/pi/CubeSatSim/.updated) ]]; then
echo "update script updated, running again"
/home/pi/CubeSatSim/update
fi
if [ $FLAG -eq 1 ]; then
echo "systemctl daemon-reload and restart"
sudo systemctl daemon-reload
sudo systemctl restart cubesatsim
else
grep 'changed' /home/pi/CubeSatSim/.updated
if [[ $(grep 'changed' /home/pi/CubeSatSim/.updated) ]]; then
echo "systemctl restart cubesatsim"
sudo systemctl restart cubesatsim
else
echo "nothing to do"
fi
fi
if [ ! -d "/home/pi/PiSSTVpp" ]; then
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo apt-get install -y python-picamera python3-picamera build-essential libgd-dev libmagic-dev
cd
git clone https://github.com/alanbjohnston/PiSSTVpp.git
cd PiSSTVpp
make pisstvpp
cd
sudo raspi-config nonint do_camera 0
FILE=/home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg
if [ ! -f "$FILE" ]; then
echo "Copying SSTV image 1"
cp /home/pi/CubeSatSim/sstv/sstv_image_1_320_x_256.jpg /home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg
fi
FILE=/home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg
if [ ! -f "$FILE" ]; then
echo "Copying SSTV image 2"
cp /home/pi/CubeSatSim/sstv/sstv_image_2_320_x_256.jpg /home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg
fi
echo "You need to reboot to complete the installation. Reboot now (y/n)?"
read -r ANS
if [ "$ANS" = "y" ]; then
sudo reboot now
else
echo "The CubeSatSim software may not work correctly until you reboot."
fi
fi
Loading…
Cancel
Save

Powered by TurnKey Linux.