From b9e1933e2b0b1af04a8357ac7b55c55474251922 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 10:52:36 -0400 Subject: [PATCH 01/57] Update main.c remove extra fail ifs --- main.c | 116 +++++---------------------------------------------------- 1 file changed, 9 insertions(+), 107 deletions(-) diff --git a/main.c b/main.c index fccfccb2..e0df490a 100644 --- a/main.c +++ b/main.c @@ -1434,25 +1434,12 @@ void get_tlm_fox() { // encodeB(b, 1 + head_offset, batt_b_v); encodeA(b, 3 + head_offset, batt_c_v); - - if ((failureMode == FAIL_MPU) || (failureMode == FAIL_PAYLOAD)) - { - encodeB(b, 4 + head_offset, 2048); // 0 - encodeA(b, 6 + head_offset, 2048); // 0 - encodeB(b, 7 + head_offset, 2048); // 0 - } - else - { encodeB(b, 4 + head_offset, (int)(sensor[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel encodeA(b, 6 + head_offset, (int)(sensor[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel encodeB(b, 7 + head_offset, (int)(sensor[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel - } encodeA(b, 9 + head_offset, battCurr); - if ((failureMode != FAIL_PAYLOAD) && (failureMode != FAIL_BME)) - encodeB(b, 10 + head_offset, (int)(sensor[TEMP] * 10 + 0.5)); // Temp - if (mode == FSK) { encodeA(b, 12 + head_offset, posXv); encodeB(b, 13 + head_offset, negXv); @@ -1506,39 +1493,22 @@ void get_tlm_fox() { encodeA(b_max, 39 + head_offset, (int)(other_max[IHU_TEMP] * 10 + 0.5)); encodeB(b_max, 31 + head_offset, ((int)(other_max[SPIN] * 10)) + 2048); - if (failureMode != FAIL_PAYLOAD) { if (sensor_min[TEMP] != 1000.0) // make sure values are valid { - if (failureMode != FAIL_MPU) { - encodeB(b_max, 4 + head_offset, (int)(sensor_max[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel - encodeA(b_max, 6 + head_offset, (int)(sensor_max[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel - encodeB(b_max, 7 + head_offset, (int)(sensor_max[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel - encodeB(b_max, 40 + head_offset, (int)(sensor_max[GYRO_X] + 0.5) + 2048); - encodeA(b_max, 42 + head_offset, (int)(sensor_max[GYRO_Y] + 0.5) + 2048); - encodeB(b_max, 43 + head_offset, (int)(sensor_max[GYRO_Z] + 0.5) + 2048); - } - else - { + encodeB(b_max, 4 + head_offset, 2048); // 0 encodeA(b_max, 6 + head_offset, 2048); // 0 encodeB(b_max, 7 + head_offset, 2048); // 0 encodeB(b_max, 40 + head_offset, 2048); encodeA(b_max, 42 + head_offset, 2048); encodeB(b_max, 43 + head_offset, 2048); - } - if (failureMode != FAIL_BME) { - encodeA(b_max, 33 + head_offset, (int)(sensor_max[PRES] + 0.5)); // Pressure - encodeB(b_max, 34 + head_offset, (int)(sensor_max[ALT] * 10.0 + 0.5)); // Altitude - // encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1] * 10 + 0.5) + 2048); - encodeB(b_max, 10 + head_offset, (int)(sensor_max[TEMP] * 10 + 0.5)); - encodeA(b_max, 45 + head_offset, (int)(sensor_max[HUMI] * 10 + 0.5)); - } + encodeA(b_max, 48 + head_offset, (int)(sensor_max[DTEMP] * 10 + 0.5) + 2048); encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1])); encodeA(b_max, 0 + head_offset, (int)(sensor_max[XS2])); encodeB(b_max, 1 + head_offset, (int)(sensor_max[XS3])); - } + else { encodeB(b_max, 4 + head_offset, 2048); // 0 @@ -1551,17 +1521,7 @@ void get_tlm_fox() { encodeA(b_max, 48 + head_offset, 2048); // encodeB(b_max, 49 + head_offset, 2048); } - } - else - { - encodeB(b_max, 4 + head_offset, 2048); // 0 - encodeA(b_max, 6 + head_offset, 2048); // 0 - encodeB(b_max, 7 + head_offset, 2048); // 0 - encodeB(b_max, 40 + head_offset, 2048); - encodeA(b_max, 42 + head_offset, 2048); - encodeB(b_max, 43 + head_offset, 2048); - encodeA(b_max, 48 + head_offset, 2048); - } + encodeA(b_min, 12 + head_offset, (int)(voltage_min[map[PLUS_X]] * 100)); encodeB(b_min, 13 + head_offset, (int)(voltage_min[map[PLUS_Y]] * 100)); encodeA(b_min, 15 + head_offset, (int)(voltage_min[map[PLUS_Z]] * 100)); @@ -1585,33 +1545,16 @@ void get_tlm_fox() { encodeB(b_min, 37 + head_offset, (int)(other_min[RSSI] + 0.5) + 2048); encodeA(b_min, 39 + head_offset, (int)(other_min[IHU_TEMP] * 10 + 0.5)); - if (failureMode != FAIL_PAYLOAD) { if (sensor_min[TEMP] != 1000.0) // make sure values are valid { - if (failureMode != FAIL_MPU) - { - encodeB(b_min, 4 + head_offset, (int)(sensor_min[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel - encodeA(b_min, 6 + head_offset, (int)(sensor_min[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel - encodeB(b_min, 7 + head_offset, (int)(sensor_min[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel - encodeB(b_min, 40 + head_offset, (int)(sensor_min[GYRO_X] + 0.5) + 2048); - encodeA(b_min, 42 + head_offset, (int)(sensor_min[GYRO_Y] + 0.5) + 2048); - encodeB(b_min, 43 + head_offset, (int)(sensor_min[GYRO_Z] + 0.5) + 2048); - } - else - { encodeB(b_min, 4 + head_offset, 2048); // 0 encodeA(b_min, 6 + head_offset, 2048); // 0 encodeB(b_min, 7 + head_offset, 2048); // 0 encodeB(b_min, 40 + head_offset, 2048); encodeA(b_min, 42 + head_offset, 2048); encodeB(b_min, 43 + head_offset, 2048); - } - if (failureMode != FAIL_BME) { - encodeA(b_min, 33 + head_offset, (int)(sensor_min[PRES] + 0.5)); // Pressure - encodeB(b_min, 34 + head_offset, (int)(sensor_min[ALT] * 10.0 + 0.5)); // Altitude - encodeB(b_min, 10 + head_offset, (int)(sensor_min[TEMP] * 10 + 0.5)); - encodeA(b_min, 45 + head_offset, (int)(sensor_min[HUMI] * 10 + 0.5)); - } + + encodeA(b_min, 48 + head_offset, (int)(sensor_min[DTEMP] * 10 + 0.5) + 2048); // encodeB(b_min, 49 + head_offset, (int)(sensor_min[XS1] * 10 + 0.5) + 2048); @@ -1633,64 +1576,23 @@ void get_tlm_fox() { encodeA(b_min, 48 + head_offset, 2048); // encodeB(b_min, 49 + head_offset, 2048); } - } - else - { - encodeB(b_min, 4 + head_offset, 2048); // 0 - encodeA(b_min, 6 + head_offset, 2048); // 0 - encodeB(b_min, 7 + head_offset, 2048); // 0 - - encodeB(b_min, 40 + head_offset, 2048); - encodeA(b_min, 42 + head_offset, 2048); - encodeB(b_min, 43 + head_offset, 2048); - - encodeA(b_min, 48 + head_offset, 2048); - } - } +// } encodeA(b, 30 + head_offset, BAT2Voltage); encodeB(b, 31 + head_offset, ((int)(other[SPIN] * 10)) + 2048); - - if (failureMode != FAIL_PAYLOAD) { - if (failureMode != FAIL_BME) { - encodeA(b, 33 + head_offset, (int)(sensor[PRES] + 0.5)); // Pressure - encodeB(b, 34 + head_offset, (int)(sensor[ALT] * 10.0 + 0.5)); // Altitude - encodeA(b, 45 + head_offset, (int)(sensor[HUMI] * 10 + 0.5)); // in place of sensor1 - encodeA(b, 39 + head_offset, (int)(other[TEMP] * 10 + 0.5)); - } + encodeA(b, 36 + head_offset, Resets); encodeB(b, 37 + head_offset, (int)(other[RSSI] + 0.5) + 2048); - if (failureMode != FAIL_MPU) { encodeB(b, 40 + head_offset, (int)(sensor[GYRO_X] + 0.5) + 2048); encodeA(b, 42 + head_offset, (int)(sensor[GYRO_Y] + 0.5) + 2048); encodeB(b, 43 + head_offset, (int)(sensor[GYRO_Z] + 0.5) + 2048); - } - else - { - encodeB(b, 40 + head_offset, 2048); - encodeA(b, 42 + head_offset, 2048); - encodeB(b, 43 + head_offset, 2048); - } encodeA(b, 48 + head_offset, (int)(sensor[DTEMP] * 10 + 0.5) + 2048); encodeB(b, 49 + head_offset, (int)(sensor[XS1])); encodeA(b, 0 + head_offset, (int)(sensor[XS2])); encodeB(b, 1 + head_offset, (int)(sensor[XS3])); - } - else - { - encodeB(b, 4 + head_offset, 2048); // 0 - encodeA(b, 6 + head_offset, 2048); // 0 - encodeB(b, 7 + head_offset, 2048); // 0 - - encodeB(b, 40 + head_offset, 2048); - encodeA(b, 42 + head_offset, 2048); - encodeB(b, 43 + head_offset, 2048); - - encodeA(b, 48 + head_offset, 2048); -// encodeB(b_min, 49 + head_offset, 2048); - } + encodeB(b, 46 + head_offset, BAT2Current); encodeA(b, 39 + head_offset, (int)(other[IHU_TEMP] * 10 + 0.5)); From 04ed97c829686f15d86bf75691d089ccee081a13 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 10:53:46 -0400 Subject: [PATCH 02/57] Update main.c fix missing } --- main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.c b/main.c index e0df490a..7a8c9efb 100644 --- a/main.c +++ b/main.c @@ -1576,7 +1576,7 @@ void get_tlm_fox() { encodeA(b_min, 48 + head_offset, 2048); // encodeB(b_min, 49 + head_offset, 2048); } -// } + } encodeA(b, 30 + head_offset, BAT2Voltage); encodeB(b, 31 + head_offset, ((int)(other[SPIN] * 10)) + 2048); From ae419945fcba1fa02d5279606fcadd8674b57e88 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 10:57:50 -0400 Subject: [PATCH 03/57] Update main.c missing } --- main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.c b/main.c index 7a8c9efb..a337952f 100644 --- a/main.c +++ b/main.c @@ -1508,7 +1508,7 @@ void get_tlm_fox() { encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1])); encodeA(b_max, 0 + head_offset, (int)(sensor_max[XS2])); encodeB(b_max, 1 + head_offset, (int)(sensor_max[XS3])); - + } else { encodeB(b_max, 4 + head_offset, 2048); // 0 From f44893cee7966aad23fe771c34d14328cff6cefa Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 11:06:45 -0400 Subject: [PATCH 04/57] Update main.c fix extra zeros --- main.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/main.c b/main.c index a337952f..98c12eeb 100644 --- a/main.c +++ b/main.c @@ -1496,12 +1496,12 @@ void get_tlm_fox() { if (sensor_min[TEMP] != 1000.0) // make sure values are valid { - encodeB(b_max, 4 + head_offset, 2048); // 0 - encodeA(b_max, 6 + head_offset, 2048); // 0 - encodeB(b_max, 7 + head_offset, 2048); // 0 - encodeB(b_max, 40 + head_offset, 2048); - encodeA(b_max, 42 + head_offset, 2048); - encodeB(b_max, 43 + head_offset, 2048); + encodeB(b_max, 4 + head_offset, (int)(sensor_max[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel + encodeA(b_max, 6 + head_offset, (int)(sensor_max[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel + encodeB(b_max, 7 + head_offset, (int)(sensor_max[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel + encodeB(b_max, 40 + head_offset, (int)(sensor_max[GYRO_X] + 0.5) + 2048); + encodeA(b_max, 42 + head_offset, (int)(sensor_max[GYRO_Y] + 0.5) + 2048); + encodeB(b_max, 43 + head_offset, (int)(sensor_max[GYRO_Z] + 0.5) + 2048); encodeA(b_max, 48 + head_offset, (int)(sensor_max[DTEMP] * 10 + 0.5) + 2048); @@ -1547,12 +1547,12 @@ void get_tlm_fox() { if (sensor_min[TEMP] != 1000.0) // make sure values are valid { - encodeB(b_min, 4 + head_offset, 2048); // 0 - encodeA(b_min, 6 + head_offset, 2048); // 0 - encodeB(b_min, 7 + head_offset, 2048); // 0 - encodeB(b_min, 40 + head_offset, 2048); - encodeA(b_min, 42 + head_offset, 2048); - encodeB(b_min, 43 + head_offset, 2048); + encodeB(b_min, 4 + head_offset, (int)(sensor_min[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel + encodeA(b_min, 6 + head_offset, (int)(sensor_min[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel + encodeB(b_min, 7 + head_offset, (int)(sensor_min[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel + encodeB(b_min, 40 + head_offset, (int)(sensor_min[GYRO_X] + 0.5) + 2048); + encodeA(b_min, 42 + head_offset, (int)(sensor_min[GYRO_Y] + 0.5) + 2048); + encodeB(b_min, 43 + head_offset, (int)(sensor_min[GYRO_Z] + 0.5) + 2048); encodeA(b_min, 48 + head_offset, (int)(sensor_min[DTEMP] * 10 + 0.5) + 2048); From b9b440f6681ba04c273f3e8cb1dd3de5ddf9620f Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 11:16:51 -0400 Subject: [PATCH 05/57] Update main.c added BME back --- main.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/main.c b/main.c index 98c12eeb..ff1a955a 100644 --- a/main.c +++ b/main.c @@ -1434,12 +1434,14 @@ void get_tlm_fox() { // encodeB(b, 1 + head_offset, batt_b_v); encodeA(b, 3 + head_offset, batt_c_v); - encodeB(b, 4 + head_offset, (int)(sensor[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel - encodeA(b, 6 + head_offset, (int)(sensor[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel - encodeB(b, 7 + head_offset, (int)(sensor[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel + encodeB(b, 4 + head_offset, (int)(sensor[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel + encodeA(b, 6 + head_offset, (int)(sensor[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel + encodeB(b, 7 + head_offset, (int)(sensor[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel encodeA(b, 9 + head_offset, battCurr); + encodeB(b, 10 + head_offset, (int)(sensor[TEMP] * 10 + 0.5)); // Temp + if (mode == FSK) { encodeA(b, 12 + head_offset, posXv); encodeB(b, 13 + head_offset, negXv); @@ -1520,7 +1522,13 @@ void get_tlm_fox() { encodeA(b_max, 48 + head_offset, 2048); // encodeB(b_max, 49 + head_offset, 2048); - } + } + + encodeA(b_max, 33 + head_offset, (int)(sensor_max[PRES] + 0.5)); // Pressure + encodeB(b_max, 34 + head_offset, (int)(sensor_max[ALT] * 10.0 + 0.5)); // Altitude + // encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1] * 10 + 0.5) + 2048); + encodeB(b_max, 10 + head_offset, (int)(sensor_max[TEMP] * 10 + 0.5)); + encodeA(b_max, 45 + head_offset, (int)(sensor_max[HUMI] * 10 + 0.5)); encodeA(b_min, 12 + head_offset, (int)(voltage_min[map[PLUS_X]] * 100)); encodeB(b_min, 13 + head_offset, (int)(voltage_min[map[PLUS_Y]] * 100)); @@ -1576,10 +1584,19 @@ void get_tlm_fox() { encodeA(b_min, 48 + head_offset, 2048); // encodeB(b_min, 49 + head_offset, 2048); } + encodeA(b_min, 33 + head_offset, (int)(sensor_min[PRES] + 0.5)); // Pressure + encodeB(b_min, 34 + head_offset, (int)(sensor_min[ALT] * 10.0 + 0.5)); // Altitude + encodeB(b_min, 10 + head_offset, (int)(sensor_min[TEMP] * 10 + 0.5)); + encodeA(b_min, 45 + head_offset, (int)(sensor_min[HUMI] * 10 + 0.5)); } encodeA(b, 30 + head_offset, BAT2Voltage); encodeB(b, 31 + head_offset, ((int)(other[SPIN] * 10)) + 2048); + + encodeA(b, 33 + head_offset, (int)(sensor[PRES] + 0.5)); // Pressure + encodeB(b, 34 + head_offset, (int)(sensor[ALT] * 10.0 + 0.5)); // Altitude + encodeA(b, 45 + head_offset, (int)(sensor[HUMI] * 10 + 0.5)); // in place of sensor1 + encodeA(b, 39 + head_offset, (int)(other[TEMP] * 10 + 0.5)); encodeA(b, 36 + head_offset, Resets); encodeB(b, 37 + head_offset, (int)(other[RSSI] + 0.5) + 2048); From e7fe85856ac278c7201d938edc4cb1ddff420031 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 12:07:25 -0400 Subject: [PATCH 06/57] Update main.c cleanup --- main.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/main.c b/main.c index ff1a955a..443423e0 100644 --- a/main.c +++ b/main.c @@ -1504,7 +1504,12 @@ void get_tlm_fox() { encodeB(b_max, 40 + head_offset, (int)(sensor_max[GYRO_X] + 0.5) + 2048); encodeA(b_max, 42 + head_offset, (int)(sensor_max[GYRO_Y] + 0.5) + 2048); encodeB(b_max, 43 + head_offset, (int)(sensor_max[GYRO_Z] + 0.5) + 2048); - + + encodeA(b_max, 33 + head_offset, (int)(sensor_max[PRES] + 0.5)); // Pressure + encodeB(b_max, 34 + head_offset, (int)(sensor_max[ALT] * 10.0 + 0.5)); // Altitude + // encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1] * 10 + 0.5) + 2048); + encodeB(b_max, 10 + head_offset, (int)(sensor_max[TEMP] * 10 + 0.5)); + encodeA(b_max, 45 + head_offset, (int)(sensor_max[HUMI] * 10 + 0.5)); encodeA(b_max, 48 + head_offset, (int)(sensor_max[DTEMP] * 10 + 0.5) + 2048); encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1])); @@ -1524,12 +1529,6 @@ void get_tlm_fox() { // encodeB(b_max, 49 + head_offset, 2048); } - encodeA(b_max, 33 + head_offset, (int)(sensor_max[PRES] + 0.5)); // Pressure - encodeB(b_max, 34 + head_offset, (int)(sensor_max[ALT] * 10.0 + 0.5)); // Altitude - // encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1] * 10 + 0.5) + 2048); - encodeB(b_max, 10 + head_offset, (int)(sensor_max[TEMP] * 10 + 0.5)); - encodeA(b_max, 45 + head_offset, (int)(sensor_max[HUMI] * 10 + 0.5)); - encodeA(b_min, 12 + head_offset, (int)(voltage_min[map[PLUS_X]] * 100)); encodeB(b_min, 13 + head_offset, (int)(voltage_min[map[PLUS_Y]] * 100)); encodeA(b_min, 15 + head_offset, (int)(voltage_min[map[PLUS_Z]] * 100)); @@ -1555,14 +1554,17 @@ void get_tlm_fox() { if (sensor_min[TEMP] != 1000.0) // make sure values are valid { - encodeB(b_min, 4 + head_offset, (int)(sensor_min[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel - encodeA(b_min, 6 + head_offset, (int)(sensor_min[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel - encodeB(b_min, 7 + head_offset, (int)(sensor_min[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel - encodeB(b_min, 40 + head_offset, (int)(sensor_min[GYRO_X] + 0.5) + 2048); - encodeA(b_min, 42 + head_offset, (int)(sensor_min[GYRO_Y] + 0.5) + 2048); - encodeB(b_min, 43 + head_offset, (int)(sensor_min[GYRO_Z] + 0.5) + 2048); + encodeB(b_min, 4 + head_offset, (int)(sensor_min[ACCEL_X] * 100 + 0.5) + 2048); // Xaccel + encodeA(b_min, 6 + head_offset, (int)(sensor_min[ACCEL_Y] * 100 + 0.5) + 2048); // Yaccel + encodeB(b_min, 7 + head_offset, (int)(sensor_min[ACCEL_Z] * 100 + 0.5) + 2048); // Zaccel + encodeB(b_min, 40 + head_offset, (int)(sensor_min[GYRO_X] + 0.5) + 2048); + encodeA(b_min, 42 + head_offset, (int)(sensor_min[GYRO_Y] + 0.5) + 2048); + encodeB(b_min, 43 + head_offset, (int)(sensor_min[GYRO_Z] + 0.5) + 2048); - + encodeA(b_min, 33 + head_offset, (int)(sensor_min[PRES] + 0.5)); // Pressure + encodeB(b_min, 34 + head_offset, (int)(sensor_min[ALT] * 10.0 + 0.5)); // Altitude + encodeB(b_min, 10 + head_offset, (int)(sensor_min[TEMP] * 10 + 0.5)); + encodeA(b_min, 45 + head_offset, (int)(sensor_min[HUMI] * 10 + 0.5)); encodeA(b_min, 48 + head_offset, (int)(sensor_min[DTEMP] * 10 + 0.5) + 2048); // encodeB(b_min, 49 + head_offset, (int)(sensor_min[XS1] * 10 + 0.5) + 2048); @@ -1584,10 +1586,7 @@ void get_tlm_fox() { encodeA(b_min, 48 + head_offset, 2048); // encodeB(b_min, 49 + head_offset, 2048); } - encodeA(b_min, 33 + head_offset, (int)(sensor_min[PRES] + 0.5)); // Pressure - encodeB(b_min, 34 + head_offset, (int)(sensor_min[ALT] * 10.0 + 0.5)); // Altitude - encodeB(b_min, 10 + head_offset, (int)(sensor_min[TEMP] * 10 + 0.5)); - encodeA(b_min, 45 + head_offset, (int)(sensor_min[HUMI] * 10 + 0.5)); + } encodeA(b, 30 + head_offset, BAT2Voltage); From 59afdf38533dab307d0acf4c233e135e1deab911 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 14:30:38 -0400 Subject: [PATCH 07/57] Update main.c battery prints --- main.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/main.c b/main.c index 443423e0..3e26914b 100644 --- a/main.c +++ b/main.c @@ -299,7 +299,7 @@ int main(int argc, char * argv[]) { map[BAT] = BAT2; map[PLUS_Z] = BAT; map[MINUS_Z] = PLUS_Z; - snprintf(busStr, 10, "%d %d", i2c_bus1, test_i2c_bus(0)); + snprintf(busStr, 10, "Bus test: %d %d", i2c_bus1, test_i2c_bus(0)); voltageThreshold = 8.0; // check for camera @@ -591,7 +591,7 @@ int main(int argc, char * argv[]) { if (token != NULL) { voltage[count1] = (float) atof(token); #ifdef DEBUG_LOGGING -// printf("voltage: %f ", voltage[count1]); + printf("voltage: %f ", voltage[count1]); #endif token = strtok(NULL, space); if (token != NULL) { @@ -605,22 +605,22 @@ int main(int argc, char * argv[]) { } } if (voltage[map[BAT]] == 0.0) // No BAT Board - if (voltage[map[BAT2]] == 0.0) // No BAT2 Board - batteryVoltage = 4.5; - else { - batteryVoltage = voltage[map[BAT2]]; // only BAT2 Board present + if (voltage[map[BAT2]] == 0.0) // No BAT2 Board + batteryVoltage = 4.5; + else { + batteryVoltage = voltage[map[BAT2]]; // only BAT2 Board present + if (sim_mode && !sim_config) { // if Voltage sensor on Battery board is present, exit simulated telemetry mode + sim_mode = FALSE; + fprintf(stderr, "Turning off sim_mode since battery sensor 2 is present\n"); + } + } + else { + batteryVoltage = voltage[map[BAT]]; // BAT Board present if (sim_mode && !sim_config) { // if Voltage sensor on Battery board is present, exit simulated telemetry mode sim_mode = FALSE; - fprintf(stderr, "Turning off sim_mode since battery sensor 2 is present\n"); + fprintf(stderr, "Turning off sim_mode since battery sensor is present\n"); } } - else { - batteryVoltage = voltage[map[BAT]]; // BAT Board present - if (sim_mode && !sim_config) { // if Voltage sensor on Battery board is present, exit simulated telemetry mode - sim_mode = FALSE; - fprintf(stderr, "Turning off sim_mode since battery sensor is present\n"); - } - } batteryCurrent = current[map[BAT]] + current[map[BAT2]]; // Sum BAT and BAT2 currents } From f871bd162a0151c05fade9a44cb3c560e063a3b0 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 14:38:33 -0400 Subject: [PATCH 08/57] Update main.c remove string --- main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index 3e26914b..5c59764f 100644 --- a/main.c +++ b/main.c @@ -299,7 +299,7 @@ int main(int argc, char * argv[]) { map[BAT] = BAT2; map[PLUS_Z] = BAT; map[MINUS_Z] = PLUS_Z; - snprintf(busStr, 10, "Bus test: %d %d", i2c_bus1, test_i2c_bus(0)); + snprintf(busStr, 10, "%d %d", i2c_bus1, test_i2c_bus(0)); voltageThreshold = 8.0; // check for camera @@ -560,7 +560,7 @@ int main(int argc, char * argv[]) { } else { - failureMode = OFF; +// failureMode = OFF; FILE * failure_mode_file = fopen("/home/pi/CubeSatSim/failure_mode.txt", "r"); if (failure_mode_file != NULL) { char failure_string[10]; @@ -571,7 +571,7 @@ int main(int argc, char * argv[]) { } } else { failureMode = FAIL_NONE; - printf("No simulated failure."); + printf("No simulated failure.\n"); } } From 6cebaea2dabdc65e17636f4947ade07fe768d4a2 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 14:42:45 -0400 Subject: [PATCH 09/57] Update main.c manually set bus string --- main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 5c59764f..681d3b9b 100644 --- a/main.c +++ b/main.c @@ -299,7 +299,8 @@ int main(int argc, char * argv[]) { map[BAT] = BAT2; map[PLUS_Z] = BAT; map[MINUS_Z] = PLUS_Z; - snprintf(busStr, 10, "%d %d", i2c_bus1, test_i2c_bus(0)); +// snprintf(busStr, 10, "%d %d", i2c_bus1, test_i2c_bus(0)); + strcpy(busStr,"1 3"); voltageThreshold = 8.0; // check for camera From 6ad6f5ce0c4b57b59ef5d947719af83cee5ef0ed Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 14:48:28 -0400 Subject: [PATCH 10/57] Update main.c revert VB4 and 5 code --- main.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/main.c b/main.c index 681d3b9b..5df9ddb2 100644 --- a/main.c +++ b/main.c @@ -295,13 +295,29 @@ int main(int argc, char * argv[]) { fclose(config_file); config_file = fopen("sim.cfg", "r"); - map[BAT2] = MINUS_Z; - map[BAT] = BAT2; - map[PLUS_Z] = BAT; - map[MINUS_Z] = PLUS_Z; -// snprintf(busStr, 10, "%d %d", i2c_bus1, test_i2c_bus(0)); - strcpy(busStr,"1 3"); - voltageThreshold = 8.0; +if (vB4) { + map[BAT] = BAT2; + map[BAT2] = BAT; + snprintf(busStr, 10, "%d %d", i2c_bus1, test_i2c_bus(0)); + } else if (vB5) { + map[MINUS_X] = MINUS_Y; + map[PLUS_Z] = MINUS_X; + map[MINUS_Y] = PLUS_Z; + + if (access("/dev/i2c-11", W_OK | R_OK) >= 0) { // Test if I2C Bus 11 is present + printf("/dev/i2c-11 is present\n\n"); + snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(11)); + } else { + snprintf(busStr, 10, "%d %d", i2c_bus1, i2c_bus3); + } + } else { + map[BAT2] = MINUS_Z; + map[BAT] = BAT2; + map[PLUS_Z] = BAT; + map[MINUS_Z] = PLUS_Z; + snprintf(busStr, 10, "%d %d", i2c_bus1, test_i2c_bus(0)); + voltageThreshold = 8.0; + } // check for camera // char cmdbuffer1[1000]; From 8315483e6248721f8a3fea772420c58cd336c676 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 14:51:46 -0400 Subject: [PATCH 11/57] Update main.c remove VB5 --- main.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/main.c b/main.c index 5df9ddb2..4f16a486 100644 --- a/main.c +++ b/main.c @@ -276,7 +276,6 @@ int main(int argc, char * argv[]) { txLed = 2; txLedOn = HIGH; txLedOff = LOW; - vB5 = TRUE; onLed = 27; onLedOn = HIGH; onLedOff = LOW; @@ -295,29 +294,17 @@ int main(int argc, char * argv[]) { fclose(config_file); config_file = fopen("sim.cfg", "r"); -if (vB4) { - map[BAT] = BAT2; - map[BAT2] = BAT; - snprintf(busStr, 10, "%d %d", i2c_bus1, test_i2c_bus(0)); - } else if (vB5) { - map[MINUS_X] = MINUS_Y; - map[PLUS_Z] = MINUS_X; - map[MINUS_Y] = PLUS_Z; + map[MINUS_X] = MINUS_Y; + map[PLUS_Z] = MINUS_X; + map[MINUS_Y] = PLUS_Z; - if (access("/dev/i2c-11", W_OK | R_OK) >= 0) { // Test if I2C Bus 11 is present + if (access("/dev/i2c-11", W_OK | R_OK) >= 0) { // Test if I2C Bus 11 is present printf("/dev/i2c-11 is present\n\n"); snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(11)); - } else { - snprintf(busStr, 10, "%d %d", i2c_bus1, i2c_bus3); - } } else { - map[BAT2] = MINUS_Z; - map[BAT] = BAT2; - map[PLUS_Z] = BAT; - map[MINUS_Z] = PLUS_Z; - snprintf(busStr, 10, "%d %d", i2c_bus1, test_i2c_bus(0)); - voltageThreshold = 8.0; + snprintf(busStr, 10, "%d %d", i2c_bus1, i2c_bus3); } + // check for camera // char cmdbuffer1[1000]; From 505a4c4b3e6296ea38ab6fdb9d260b292afd6e11 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 14:52:34 -0400 Subject: [PATCH 12/57] Update main.h remove VB 3, 4, and 5 --- main.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.h b/main.h index 10c263d0..b0f9ca91 100644 --- a/main.h +++ b/main.h @@ -169,7 +169,7 @@ float sleepTime; unsigned int sampleTime = 0; int frames_sent = 0; int cw_id = ON; -int vB4 = FALSE, vB5 = FALSE, vB3 = FALSE, transmit = FALSE, onLed, onLedOn, onLedOff, txLed, txLedOn, txLedOff, payload = OFF; +int transmit = FALSE, onLed, onLedOn, onLedOff, txLed, txLedOn, txLedOff, payload = OFF; // float voltageThreshold = 3.6, batteryVoltage = 4.5, batteryCurrent = 0, currentThreshold = 100; float voltageThreshold = 3.5, batteryVoltage = 4.5, batteryCurrent = 0, currentThreshold = 100; float latitude = 39.027702f, longitude = -77.078064f; From c4a83c1136148b762fdd93d7715029a95ceab44e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:02:48 -0400 Subject: [PATCH 13/57] Update main.c fix deg --- main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index 4f16a486..1b7e7b03 100644 --- a/main.c +++ b/main.c @@ -1259,8 +1259,8 @@ void get_tlm_fox() { printf("+X Solar Simulated Failure\n"); } if (failureMode == FAIL_DEGRADE) { - voltage[map[MINUS_X]] = voltage[MINUS_X] * 0.5; - current[map[MINUS_X]] = current[MINUS_X] * 0.5; + voltage[map[MINUS_X]] = voltage[map[MINUS_X]] * 0.5; + current[map[MINUS_X]] = current[map[MINUS_X]] * 0.5; printf("-X Solar Deg Simulated Failure\n"); } if (failureMode == FAIL_SHORT) { From 28fe1af15fa0a97a73f21b05039f7f0be6add45f Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:19:04 -0400 Subject: [PATCH 14/57] Update main.c cleanup --- main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index 1b7e7b03..1f4a8e4e 100644 --- a/main.c +++ b/main.c @@ -595,7 +595,7 @@ int main(int argc, char * argv[]) { if (token != NULL) { voltage[count1] = (float) atof(token); #ifdef DEBUG_LOGGING - printf("voltage: %f ", voltage[count1]); +// printf("voltage: %f ", voltage[count1]); #endif token = strtok(NULL, space); if (token != NULL) { @@ -663,7 +663,7 @@ int main(int argc, char * argv[]) { if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) // only process if valid payload response { - printf("Valid Payload!\n"); +// printf("Valid Payload!\n"); int count1; char * token; @@ -752,7 +752,7 @@ int main(int argc, char * argv[]) { strcpy(sensor_payload, buffer2); // restore sensor_payload after strtok operation if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) { - printf("Valid Payload!!\n"); +// printf("Valid Payload!!\n"); for (int count1 = 0; count1 < SENSOR_FIELDS; count1++) { if (sensor[count1] < sensor_min[count1]) sensor_min[count1] = sensor[count1]; From 2e4dd784be4327928de446f67e4c0fdc697005ab Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:24:01 -0400 Subject: [PATCH 15/57] Update config print sim fail mode with -M --- config | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/config b/config index 3951c06c..dd3dd279 100755 --- a/config +++ b/config @@ -1482,6 +1482,53 @@ elif [ "$1" = "-j" ]; then elif [ "$1" = "-M" ]; then # echo + + echo + FILE=/home/pi/CubeSatSim/failure_mode.txt + if [ -f "$FILE" ]; then + if [[ $(grep '0' $FILE) ]]; then + echo "Currently, no simulated failure" + else + fail=$(<$FILE) + echo -n "Currenly, simulated " + case $fail in + + 1) + echo "+X Solar Panel Failure" + ;; + 2) + echo "-X Solar Panel Degredation" + ;; + 3) + echo "-Y Solar Panel Short Circuit" + ;; + 4) + echo "Failed I2C Bus 1" + ;; + 5) + echo "Failed I2C Bus 3" + ;; + 6) + echo "Failed Camera" + ;; + 7) + echo "Failed Payload" + ;; + 8) + echo "Failed BME Sensor" + ;; + 9) + echo "Failed MPU Sensor" + ;; + *) + echo "Unknown Failure" + ;; + esac + else + echo "Currently, no simulated failure" + fi + + MODE=0 echo "Set simulated failure mode" echo From ab310aff50676618022d9619c319960d8bb11885 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:27:03 -0400 Subject: [PATCH 16/57] Update config --- config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config b/config index dd3dd279..f0b38bfc 100755 --- a/config +++ b/config @@ -1523,7 +1523,8 @@ elif [ "$1" = "-M" ]; then *) echo "Unknown Failure" ;; - esac + esac + fi else echo "Currently, no simulated failure" fi From 97b192a97637ac89dfeac1c184fa8f026d4d3c33 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:31:51 -0400 Subject: [PATCH 17/57] Update config fix return --- config | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/config b/config index f0b38bfc..ceea279a 100755 --- a/config +++ b/config @@ -1529,7 +1529,6 @@ elif [ "$1" = "-M" ]; then echo "Currently, no simulated failure" fi - MODE=0 echo "Set simulated failure mode" echo @@ -1551,40 +1550,39 @@ elif [ "$1" = "-M" ]; then echo if [ "$MODE" = "0" ]; then echo "Setting No Simulated Failure" - else - echo -n "Setting Simulated " - + else case $MODE in 1) - echo "+X Solar Panel Failure" + echo "Setting Simulated +X Solar Panel Failure" ;; 2) - echo "-X Solar Panel Degredation" + echo "Setting Simulated -X Solar Panel Degredation" ;; 3) - echo "-Y Solar Panel Short Circuit" + echo "Setting Simulated -Y Solar Panel Short Circuit" ;; 4) - echo "Failed I2C Bus 1" + echo "Setting Simulated Failed I2C Bus 1" ;; 5) - echo "Failed I2C Bus 3" + echo "Setting Simulated Failed I2C Bus 3" ;; 6) - echo "Failed Camera" + echo "Setting Simulated Failed Camera" ;; 7) - echo "Failed Payload" + echo "Setting Simulated Failed Payload" ;; 8) - echo "Failed BME Sensor" + echo "Setting Simulated Failed BME Sensor" ;; 9) - echo "Failed MPU Sensor" + echo "Setting Simulated Failed MPU Sensor" ;; *) - echo "Unknown Failure" + echo "Setting No Simulated Failure" + MODE=0 ;; esac fi From b1e750eafe8a60d7e036c8a30b64c6b2d8f068c6 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:32:51 -0400 Subject: [PATCH 18/57] Update config remove space --- config | 3 --- 1 file changed, 3 deletions(-) diff --git a/config b/config index ceea279a..59d99a6f 100755 --- a/config +++ b/config @@ -1481,9 +1481,6 @@ elif [ "$1" = "-j" ]; then elif [ "$1" = "-M" ]; then -# echo - - echo FILE=/home/pi/CubeSatSim/failure_mode.txt if [ -f "$FILE" ]; then if [[ $(grep '0' $FILE) ]]; then From af408a3996225cd36952033fb5a7b9730898786a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:34:11 -0400 Subject: [PATCH 19/57] Update config extra blank line --- config | 1 + 1 file changed, 1 insertion(+) diff --git a/config b/config index 59d99a6f..2d44b72e 100755 --- a/config +++ b/config @@ -1526,6 +1526,7 @@ elif [ "$1" = "-M" ]; then echo "Currently, no simulated failure" fi + echo echo "Set simulated failure mode" echo From d6821ea90ed7fe06d478ee0841fb127e39161663 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:40:44 -0400 Subject: [PATCH 20/57] Update main.c create cam variable --- main.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/main.c b/main.c index 1f4a8e4e..f8dfc146 100644 --- a/main.c +++ b/main.c @@ -1214,6 +1214,7 @@ void get_tlm_fox() { int i; long int sync = syncWord; + int cam = ON; smaller = (int) (S_RATE / (2 * freq_Hz)); @@ -1289,14 +1290,14 @@ void get_tlm_fox() { current[map[PLUS_Z]] = 0.0; printf("I2C Bus 3 Simulated Failure!\n"); } - if (failureMode == FAIL_CAMERA) { - camera = OFF; - printf("Camera Simulated Failure!\n"); - } if (failureMode == FAIL_PAYLOAD) { payload = OFF; printf("Payload Simulated Failure!\n"); } + if (failureMode == FAIL_CAMERA) { + cam = OFF; + printf("Camera Simulated Failure!\n"); + } if (mode == FSK) id = 7; @@ -1649,7 +1650,7 @@ void get_tlm_fox() { // int status = STEMBoardFailure + SafeMode * 2 + sim_mode * 4 + PayloadFailure1 * 8 + // (i2c_bus0 == OFF) * 16 + (i2c_bus1 == OFF) * 32 + (i2c_bus3 == OFF) * 64 + (camera == OFF) * 128 + groundCommandCount * 256; int status = STEMBoardFailure + SafeMode * 2 + simulated * 4 + PayloadFailure1 * 8 + - (i2c_bus0 == OFF) * 16 + (i2c_1 == OFF) * 32 + (i2c_3 == OFF) * 64 + (camera == OFF) * 128 + groundCommandCount * 256; + (i2c_bus0 == OFF) * 16 + (i2c_1 == OFF) * 32 + (i2c_3 == OFF) * 64 + (cam == OFF) * 128 + groundCommandCount * 256; encodeA(b, 51 + head_offset, status); encodeB(b, 52 + head_offset, rxAntennaDeployed + txAntennaDeployed * 2 + c2cStatus * 4); From 0278d717202aa03866cb43950084b6000a258ed2 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:43:04 -0400 Subject: [PATCH 21/57] Update config typo --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index 2d44b72e..b42eeec5 100755 --- a/config +++ b/config @@ -1487,7 +1487,7 @@ elif [ "$1" = "-M" ]; then echo "Currently, no simulated failure" else fail=$(<$FILE) - echo -n "Currenly, simulated " + echo -n "Currently, simulated " case $fail in 1) From acd8bc60d6fc49dedfa12a47a94e88a7ef5395f6 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:48:33 -0400 Subject: [PATCH 22/57] Update config add fail mode 10 --- config | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config b/config index b42eeec5..c8ee75d2 100755 --- a/config +++ b/config @@ -314,6 +314,9 @@ if [ "$1" = "" ]; then 9) echo "Failed MPU Sensor" ;; + 10) + echo "Failed FM Audio" + ;; *) echo "Unknown Failure" ;; @@ -1517,7 +1520,10 @@ elif [ "$1" = "-M" ]; then 9) echo "Failed MPU Sensor" ;; - *) + 10) + echo "Failed FM Audio" + ;; + *) echo "Unknown Failure" ;; esac @@ -1578,6 +1584,9 @@ elif [ "$1" = "-M" ]; then 9) echo "Setting Simulated Failed MPU Sensor" ;; + 10) + echo "Setting Failed FM Audio" + ;; *) echo "Setting No Simulated Failure" MODE=0 From 2594e5856a28f876c50fa6e3a6c9265598cc2fd8 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:53:18 -0400 Subject: [PATCH 23/57] Update config fix 10 --- config | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/config b/config index c8ee75d2..99549453 100755 --- a/config +++ b/config @@ -1520,7 +1520,7 @@ elif [ "$1" = "-M" ]; then 9) echo "Failed MPU Sensor" ;; - 10) + "10") echo "Failed FM Audio" ;; *) @@ -1536,19 +1536,20 @@ elif [ "$1" = "-M" ]; then echo "Set simulated failure mode" echo - echo "0 No Failure (turn OFF)" - echo "1 +X Solar Panel Failure" - echo "2 -X Solar Panel Degredation" - echo "3 -Y Solar Panel Short Circuit" - echo "4 Failed I2C Bus 1" - echo "5 Failed I2C Bus 3" - echo "6 Failed Camera" - echo "7 Failed Payload" - echo "8 Failed BME Sensor" - echo "9 Failed MPU Sensor" + echo " 0 No Failure (turn OFF)" + echo " 1 +X Solar Panel Failure" + echo " 2 -X Solar Panel Degredation" + echo " 3 -Y Solar Panel Short Circuit" + echo " 4 Failed I2C Bus 1" + echo " 5 Failed I2C Bus 3" + echo " 6 Failed Camera" + echo " 7 Failed Payload" + echo " 8 Failed BME Sensor" + echo " 9 Failed MPU Sensor" + echo "10 Failed FM Audio" echo - echo "Enter the failure number to set: 0 - 9" + echo "Enter the failure number to set: 0 - 10" read MODE echo @@ -1584,7 +1585,7 @@ elif [ "$1" = "-M" ]; then 9) echo "Setting Simulated Failed MPU Sensor" ;; - 10) + "10") echo "Setting Failed FM Audio" ;; *) From a287b033ea6929bca31a143b46f7db10345f51d0 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:54:20 -0400 Subject: [PATCH 24/57] Update config fix display 10 --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index 99549453..9b695b2a 100755 --- a/config +++ b/config @@ -314,7 +314,7 @@ if [ "$1" = "" ]; then 9) echo "Failed MPU Sensor" ;; - 10) + "10") echo "Failed FM Audio" ;; *) From 1edc141f7ca82a26c8c850152afeb604623a2a09 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 15:58:41 -0400 Subject: [PATCH 25/57] Update main.h changed FAIL_NONE to -1 --- main.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.h b/main.h index b0f9ca91..6ce6b86a 100644 --- a/main.h +++ b/main.h @@ -122,7 +122,7 @@ FILE *image_file; #define TXCOMMAND 12 #define FAIL_COUNT 10 -#define FAIL_NONE 0 +#define FAIL_NONE -1 #define FAIL_SOLAR 1 #define FAIL_DEGRADE 2 #define FAIL_SHORT 3 From bfa666b1e18f30f0fbebb3d48e243e0dde423eaa Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:01:13 -0400 Subject: [PATCH 26/57] Update config changed fail sim off to -1 --- config | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config b/config index 9b695b2a..0d1e1bdc 100755 --- a/config +++ b/config @@ -278,7 +278,7 @@ if [ "$1" = "" ]; then FILE=/home/pi/CubeSatSim/failure_mode.txt if [ -f "$FILE" ]; then - if [[ $(grep '0' $FILE) ]]; then + if [[ $(grep '-1' $FILE) ]]; then echo "No simulated failure" else fail=$(<$FILE) @@ -1486,7 +1486,7 @@ elif [ "$1" = "-M" ]; then FILE=/home/pi/CubeSatSim/failure_mode.txt if [ -f "$FILE" ]; then - if [[ $(grep '0' $FILE) ]]; then + if [[ $(grep '-1' $FILE) ]]; then echo "Currently, no simulated failure" else fail=$(<$FILE) @@ -1533,7 +1533,7 @@ elif [ "$1" = "-M" ]; then fi echo - echo "Set simulated failure mode" + echo "Set simulated failure mode (or Return to turn OFF)" echo echo " 0 No Failure (turn OFF)" @@ -1555,6 +1555,7 @@ elif [ "$1" = "-M" ]; then echo if [ "$MODE" = "0" ]; then echo "Setting No Simulated Failure" + MODE="-1" else case $MODE in From 7b6a63f6719f3c3f5fbfb4bedb1793e6642af146 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:04:27 -0400 Subject: [PATCH 27/57] Update config change quotes --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index 0d1e1bdc..c04165c4 100755 --- a/config +++ b/config @@ -278,7 +278,7 @@ if [ "$1" = "" ]; then FILE=/home/pi/CubeSatSim/failure_mode.txt if [ -f "$FILE" ]; then - if [[ $(grep '-1' $FILE) ]]; then + if [[ $(grep "-1" $FILE) ]]; then echo "No simulated failure" else fail=$(<$FILE) From 76481ec17b3a67a01b98a4438a003295e3fb647e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:07:38 -0400 Subject: [PATCH 28/57] Update config fix -1 --- config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config b/config index c04165c4..a14293fb 100755 --- a/config +++ b/config @@ -278,7 +278,7 @@ if [ "$1" = "" ]; then FILE=/home/pi/CubeSatSim/failure_mode.txt if [ -f "$FILE" ]; then - if [[ $(grep "-1" $FILE) ]]; then + if [[ $(grep "\-1" $FILE) ]]; then echo "No simulated failure" else fail=$(<$FILE) @@ -1486,7 +1486,7 @@ elif [ "$1" = "-M" ]; then FILE=/home/pi/CubeSatSim/failure_mode.txt if [ -f "$FILE" ]; then - if [[ $(grep '-1' $FILE) ]]; then + if [[ $(grep "\-1" $FILE) ]]; then echo "Currently, no simulated failure" else fail=$(<$FILE) From fbb27f5df185300b8281159e01a8c89f09fd4ea5 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:11:37 -0400 Subject: [PATCH 29/57] Update config fix -1 --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index a14293fb..ab3c27f7 100755 --- a/config +++ b/config @@ -1555,7 +1555,7 @@ elif [ "$1" = "-M" ]; then echo if [ "$MODE" = "0" ]; then echo "Setting No Simulated Failure" - MODE="-1" + MODE=-1 else case $MODE in From bcd74c0e293d78246991403d962bd8d7e1d29db1 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:13:24 -0400 Subject: [PATCH 30/57] Update config adding -1 --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index ab3c27f7..49aa572d 100755 --- a/config +++ b/config @@ -1591,7 +1591,7 @@ elif [ "$1" = "-M" ]; then ;; *) echo "Setting No Simulated Failure" - MODE=0 + MODE=-1 ;; esac fi From 3d5e8166aebcf1958e0de6103d1501e71ef44c67 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:23:22 -0400 Subject: [PATCH 31/57] Update transmit.py fix turn fail off --- transmit.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/transmit.py b/transmit.py index 7fc649f9..fe91c69e 100644 --- a/transmit.py +++ b/transmit.py @@ -480,8 +480,10 @@ if __name__ == "__main__": print("Failure mode no FM audio") else: print("Other failure mode") + card = "Headphones" except: print("No failure mode") + card = "Headphones" except: # command_control_check() sleep(1) From 90e6793212192b520eeef3bd0780c71293513a73 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:37:16 -0400 Subject: [PATCH 32/57] Update transmit.py add sim_failure_check() --- transmit.py | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/transmit.py b/transmit.py index fe91c69e..51accf3a 100644 --- a/transmit.py +++ b/transmit.py @@ -12,6 +12,20 @@ from PIL import Image, ImageDraw, ImageFont, ImageColor import serial import random +def sim_failure_check(): + try: + file = open("/home/pi/CubeSatSim/failure_mode.txt") + fail_mode = file.read(2) + if (fail_mode == "10"): + card = "Device" # Change audio so no FM audio plays + print("Failure mode no FM audio") + else: + print("Other failure mode") + card = "Headphones" + except: + print("No failure mode") + card = "Headphones" + def battery_saver_check(): try: global txc @@ -446,6 +460,7 @@ if __name__ == "__main__": # # battery_saver_check() if (txc): + sim_failure_check() # output(pd, 1) sleep(0.1) # add delay before transmit output (ptt, 0) @@ -472,18 +487,7 @@ if __name__ == "__main__": print("Ready for next packet!") sleep(0.5) - try: - file = open("/home/pi/CubeSatSim/failure_mode.txt") - fail_mode = file.read(2) - if (fail_mode == "10"): - card = "Device" # Change audio so no FM audio plays - print("Failure mode no FM audio") - else: - print("Other failure mode") - card = "Headphones" - except: - print("No failure mode") - card = "Headphones" + except: # command_control_check() sleep(1) @@ -510,6 +514,7 @@ if __name__ == "__main__": output(txLed, txLedOn) if (txc): + sim_failure_check() # output (pd, 1) sleep(0.3) output (ptt, 0) @@ -571,6 +576,7 @@ if __name__ == "__main__": # battery_saver_check() if (txc): + sim_failure_check() # output(pd, 1) output (ptt, 0) system("aplay -D plughw:CARD=" + card + ",DEV=0 /home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg.wav") @@ -631,6 +637,7 @@ if __name__ == "__main__": # battery_saver_check() if (txc): + sim_failure_check() # output(pd, 1) output (ptt, 0) system("aplay -D plughw:CARD=" + card + ",DEV=0 /home/pi/CubeSatSim/camera_out.jpg.wav") @@ -668,6 +675,7 @@ if __name__ == "__main__": # battery_saver_check() if (txc): + sim_failure_check() # output(pd, 1) output (ptt, 0) system("aplay -D plughw:CARD=" + card + ",DEV=0 /home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg.wav") @@ -704,6 +712,7 @@ if __name__ == "__main__": # battery_saver_check() if (txc): + sim_failure_check() # output(pd, 1) output (ptt, 0) system("aplay -D plughw:CARD=" + card + ",DEV=0 /home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg.wav") @@ -735,6 +744,7 @@ if __name__ == "__main__": # battery_saver_check() if (txc): + sim_failure_check() # output(pd, 1) output (ptt, 0) system("aplay -D plughw:CARD=" + card + ",DEV=0 /home/pi/CubeSatSim/sstv.wav") From a471b113e866b85aa87aaa6de2638dc095d271e4 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:38:37 -0400 Subject: [PATCH 33/57] Update transmit.py fix indent --- transmit.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/transmit.py b/transmit.py index 51accf3a..ad6a58b2 100644 --- a/transmit.py +++ b/transmit.py @@ -14,17 +14,17 @@ import random def sim_failure_check(): try: - file = open("/home/pi/CubeSatSim/failure_mode.txt") - fail_mode = file.read(2) - if (fail_mode == "10"): - card = "Device" # Change audio so no FM audio plays - print("Failure mode no FM audio") - else: - print("Other failure mode") - card = "Headphones" - except: - print("No failure mode") + file = open("/home/pi/CubeSatSim/failure_mode.txt") + fail_mode = file.read(2) + if (fail_mode == "10"): + card = "Device" # Change audio so no FM audio plays + print("Failure mode no FM audio") + else: + print("Other failure mode") card = "Headphones" + except: + print("No failure mode") + card = "Headphones" def battery_saver_check(): try: From a49d46c045acb290c2cd7b356094928b38b20f91 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:41:04 -0400 Subject: [PATCH 34/57] Update transmit.py fix global --- transmit.py | 1 + 1 file changed, 1 insertion(+) diff --git a/transmit.py b/transmit.py index ad6a58b2..3862feb2 100644 --- a/transmit.py +++ b/transmit.py @@ -14,6 +14,7 @@ import random def sim_failure_check(): try: + global card file = open("/home/pi/CubeSatSim/failure_mode.txt") fail_mode = file.read(2) if (fail_mode == "10"): From e99f6b5e5f0f86d4b8e64daeb8ccb75cb720a9b3 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:45:58 -0400 Subject: [PATCH 35/57] Update config remove 10 --- config | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/config b/config index 49aa572d..736dad41 100755 --- a/config +++ b/config @@ -314,9 +314,9 @@ if [ "$1" = "" ]; then 9) echo "Failed MPU Sensor" ;; - "10") - echo "Failed FM Audio" - ;; +# "10") +# echo "Failed FM Audio" +# ;; *) echo "Unknown Failure" ;; @@ -1520,9 +1520,9 @@ elif [ "$1" = "-M" ]; then 9) echo "Failed MPU Sensor" ;; - "10") - echo "Failed FM Audio" - ;; +# "10") +# echo "Failed FM Audio" +# ;; *) echo "Unknown Failure" ;; @@ -1546,10 +1546,11 @@ elif [ "$1" = "-M" ]; then echo " 7 Failed Payload" echo " 8 Failed BME Sensor" echo " 9 Failed MPU Sensor" - echo "10 Failed FM Audio" +# echo "10 Failed FM Audio" echo - echo "Enter the failure number to set: 0 - 10" +# echo "Enter the failure number to set: 0 - 10" # 10 sometimes gets stuck on carrier + echo "Enter the failure number to set: 0 - 9" read MODE echo @@ -1586,9 +1587,9 @@ elif [ "$1" = "-M" ]; then 9) echo "Setting Simulated Failed MPU Sensor" ;; - "10") - echo "Setting Failed FM Audio" - ;; +# "10") +# echo "Setting Failed FM Audio" +# ;; *) echo "Setting No Simulated Failure" MODE=-1 From f953ddd41341add39d91d01fe04fdcef04044278 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 16:49:26 -0400 Subject: [PATCH 36/57] Update main.c sim mode random only 1-9 --- main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index f8dfc146..9a18fa70 100644 --- a/main.c +++ b/main.c @@ -555,7 +555,8 @@ int main(int argc, char * argv[]) { if (sim_mode) { if (loop % 10 == 0) { - failureMode = (int) rnd_float(1, FAIL_COUNT); +// failureMode = (int) rnd_float(1, FAIL_COUNT); + failureMode = (int) rnd_float(1, 9); printf("Sim Mode Random Failure Change\n"); FILE * failure_mode_file = fopen("/home/pi/CubeSatSim/failure_mode.txt", "w"); fprintf(failure_mode_file, "%d", failureMode); From 7ee647cd57de56d7eede124101f1c0326579b7cd Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 17:01:53 -0400 Subject: [PATCH 37/57] Update main.c --- main.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/main.c b/main.c index 9a18fa70..fffaae77 100644 --- a/main.c +++ b/main.c @@ -78,7 +78,7 @@ int main(int argc, char * argv[]) { } if (strcmp(sim_yes, "yes") == 0) { - sim_mode = TRUE; + = TRUE; fprintf(stderr, "Sim mode is turned ON by configuration\n"); sim_config = TRUE; } @@ -336,9 +336,9 @@ int main(int argc, char * argv[]) { fprintf(stderr, "Unable to open UART: %s\n -> Did you configure /boot/config.txt and /boot/cmdline.txt?\n", strerror(errno)); } - if ((i2c_bus3 == OFF) || (sim_mode == TRUE)) { + if ((i2c_bus3 == OFF) || ( == TRUE)) { - sim_mode = TRUE; + = TRUE; fprintf(stderr, "Simulated telemetry mode!\n"); @@ -492,14 +492,14 @@ int main(int argc, char * argv[]) { memset(sensor, 0, sizeof(sensor)); memset(other, 0, sizeof(other)); - if (((mode == FSK) || (mode == BPSK))) // && !sim_mode) + if (((mode == FSK) || (mode == BPSK))) // && !) get_tlm_fox(); // fill transmit buffer with reset count 0 packets that will be ignored - else if (((mode == FC))) // && !sim_mode) + else if (((mode == FC))) // && !) get_tlm_fc(); // fill transmit buffer with reset count 0 packets that will be ignored firstTime = 1; -// if (!sim_mode) // always read sensors, even in sim mode +// if (!) // always read sensors, even in sim mode { strcpy(pythonStr, pythonCmd); strcat(pythonStr, busStr); @@ -830,8 +830,7 @@ int main(int argc, char * argv[]) { // end of simulated telemetry } - else { - } + FILE * cpuTempSensor = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); if (cpuTempSensor) { // double cpuTemp; From 03f0b02fde90638e3f17e7e6f281aee41b41e6a3 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 17:03:37 -0400 Subject: [PATCH 38/57] Update main.c revert --- main.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/main.c b/main.c index fffaae77..9a18fa70 100644 --- a/main.c +++ b/main.c @@ -78,7 +78,7 @@ int main(int argc, char * argv[]) { } if (strcmp(sim_yes, "yes") == 0) { - = TRUE; + sim_mode = TRUE; fprintf(stderr, "Sim mode is turned ON by configuration\n"); sim_config = TRUE; } @@ -336,9 +336,9 @@ int main(int argc, char * argv[]) { fprintf(stderr, "Unable to open UART: %s\n -> Did you configure /boot/config.txt and /boot/cmdline.txt?\n", strerror(errno)); } - if ((i2c_bus3 == OFF) || ( == TRUE)) { + if ((i2c_bus3 == OFF) || (sim_mode == TRUE)) { - = TRUE; + sim_mode = TRUE; fprintf(stderr, "Simulated telemetry mode!\n"); @@ -492,14 +492,14 @@ int main(int argc, char * argv[]) { memset(sensor, 0, sizeof(sensor)); memset(other, 0, sizeof(other)); - if (((mode == FSK) || (mode == BPSK))) // && !) + if (((mode == FSK) || (mode == BPSK))) // && !sim_mode) get_tlm_fox(); // fill transmit buffer with reset count 0 packets that will be ignored - else if (((mode == FC))) // && !) + else if (((mode == FC))) // && !sim_mode) get_tlm_fc(); // fill transmit buffer with reset count 0 packets that will be ignored firstTime = 1; -// if (!) // always read sensors, even in sim mode +// if (!sim_mode) // always read sensors, even in sim mode { strcpy(pythonStr, pythonCmd); strcat(pythonStr, busStr); @@ -830,7 +830,8 @@ int main(int argc, char * argv[]) { // end of simulated telemetry } - + else { + } FILE * cpuTempSensor = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); if (cpuTempSensor) { // double cpuTemp; From e39437bd55ac215138b3bbc4e3b971292e097e31 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 17:04:35 -0400 Subject: [PATCH 39/57] Update main.c remove extra else --- main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/main.c b/main.c index 9a18fa70..5de8cf08 100644 --- a/main.c +++ b/main.c @@ -830,8 +830,7 @@ int main(int argc, char * argv[]) { // end of simulated telemetry } - else { - } + FILE * cpuTempSensor = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); if (cpuTempSensor) { // double cpuTemp; From 2b1ac62e901eb85fca9328238a729abad80d5aa2 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:22:15 -0400 Subject: [PATCH 40/57] Update main.c read failure in sim_mode --- main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index 5de8cf08..1ac35b14 100644 --- a/main.c +++ b/main.c @@ -563,8 +563,8 @@ int main(int argc, char * argv[]) { fclose(failure_mode_file); } } - else - { +// else +// { // failureMode = OFF; FILE * failure_mode_file = fopen("/home/pi/CubeSatSim/failure_mode.txt", "r"); if (failure_mode_file != NULL) { @@ -578,7 +578,7 @@ int main(int argc, char * argv[]) { failureMode = FAIL_NONE; printf("No simulated failure.\n"); } - } +// } { int count1; From 757dd34699d52f2f0d9bd265f3776769be5c0aed Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:43:33 -0400 Subject: [PATCH 41/57] Update config print fail --- config | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config b/config index 736dad41..b4aa3ee3 100755 --- a/config +++ b/config @@ -220,7 +220,11 @@ sudo modprobe snd-aloop # if [ "$2" = "n" ] ; then if [ -z "$2" ] ; then - noreboot=0 + if [ "$2" = "n" ] ; then + noreboot=0 + else + fail=$2 + fi else noreboot=1 echo "Reboot disabled" @@ -1484,6 +1488,11 @@ elif [ "$1" = "-j" ]; then elif [ "$1" = "-M" ]; then + if [ -z $fail ] then + echo "$fail has a value!" + echo $fail + fi + FILE=/home/pi/CubeSatSim/failure_mode.txt if [ -f "$FILE" ]; then if [[ $(grep "\-1" $FILE) ]]; then From c7f42b34961f9f08f19c69c9fa6f8da200ca314c Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:44:48 -0400 Subject: [PATCH 42/57] Update config missing ; --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index b4aa3ee3..f6e3e99e 100755 --- a/config +++ b/config @@ -1488,7 +1488,7 @@ elif [ "$1" = "-j" ]; then elif [ "$1" = "-M" ]; then - if [ -z $fail ] then + if [ -z $fail ]; then echo "$fail has a value!" echo $fail fi From 708f9359d0c034ab8e705ed70530770dfc447280 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:48:21 -0400 Subject: [PATCH 43/57] Update config more fail --- config | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/config b/config index f6e3e99e..4f2f51e5 100755 --- a/config +++ b/config @@ -220,14 +220,15 @@ sudo modprobe snd-aloop # if [ "$2" = "n" ] ; then if [ -z "$2" ] ; then + noreboot=0 +else if [ "$2" = "n" ] ; then - noreboot=0 + echo "Reboot disabled" + noreboot=1 else fail=$2 fi -else - noreboot=1 - echo "Reboot disabled" + fi # echo "No reboot" @@ -1488,8 +1489,8 @@ elif [ "$1" = "-j" ]; then elif [ "$1" = "-M" ]; then - if [ -z $fail ]; then - echo "$fail has a value!" + if [ $fail ]; then + echo "fail has a value!" echo $fail fi From 9c9eb24b8e884ad64eb136f5d9d8b10696ed5425 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:50:49 -0400 Subject: [PATCH 44/57] Update config set $2 to mode --- config | 136 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/config b/config index 4f2f51e5..fc042a8d 100755 --- a/config +++ b/config @@ -1490,79 +1490,79 @@ elif [ "$1" = "-j" ]; then elif [ "$1" = "-M" ]; then if [ $fail ]; then - echo "fail has a value!" - echo $fail - fi + MODE=$fail + else - FILE=/home/pi/CubeSatSim/failure_mode.txt - if [ -f "$FILE" ]; then - if [[ $(grep "\-1" $FILE) ]]; then - echo "Currently, no simulated failure" + FILE=/home/pi/CubeSatSim/failure_mode.txt + if [ -f "$FILE" ]; then + if [[ $(grep "\-1" $FILE) ]]; then + echo "Currently, no simulated failure" + else + fail=$(<$FILE) + echo -n "Currently, simulated " + case $fail in + + 1) + echo "+X Solar Panel Failure" + ;; + 2) + echo "-X Solar Panel Degredation" + ;; + 3) + echo "-Y Solar Panel Short Circuit" + ;; + 4) + echo "Failed I2C Bus 1" + ;; + 5) + echo "Failed I2C Bus 3" + ;; + 6) + echo "Failed Camera" + ;; + 7) + echo "Failed Payload" + ;; + 8) + echo "Failed BME Sensor" + ;; + 9) + echo "Failed MPU Sensor" + ;; + # "10") + # echo "Failed FM Audio" + # ;; + *) + echo "Unknown Failure" + ;; + esac + fi else - fail=$(<$FILE) - echo -n "Currently, simulated " - case $fail in - - 1) - echo "+X Solar Panel Failure" - ;; - 2) - echo "-X Solar Panel Degredation" - ;; - 3) - echo "-Y Solar Panel Short Circuit" - ;; - 4) - echo "Failed I2C Bus 1" - ;; - 5) - echo "Failed I2C Bus 3" - ;; - 6) - echo "Failed Camera" - ;; - 7) - echo "Failed Payload" - ;; - 8) - echo "Failed BME Sensor" - ;; - 9) - echo "Failed MPU Sensor" - ;; -# "10") -# echo "Failed FM Audio" -# ;; - *) - echo "Unknown Failure" - ;; - esac + echo "Currently, no simulated failure" fi - else - echo "Currently, no simulated failure" + + echo + echo "Set simulated failure mode (or Return to turn OFF)" + echo + + echo " 0 No Failure (turn OFF)" + echo " 1 +X Solar Panel Failure" + echo " 2 -X Solar Panel Degredation" + echo " 3 -Y Solar Panel Short Circuit" + echo " 4 Failed I2C Bus 1" + echo " 5 Failed I2C Bus 3" + echo " 6 Failed Camera" + echo " 7 Failed Payload" + echo " 8 Failed BME Sensor" + echo " 9 Failed MPU Sensor" + # echo "10 Failed FM Audio" + echo + + # echo "Enter the failure number to set: 0 - 10" # 10 sometimes gets stuck on carrier + echo "Enter the failure number to set: 0 - 9" + read MODE fi - echo - echo "Set simulated failure mode (or Return to turn OFF)" - echo - - echo " 0 No Failure (turn OFF)" - echo " 1 +X Solar Panel Failure" - echo " 2 -X Solar Panel Degredation" - echo " 3 -Y Solar Panel Short Circuit" - echo " 4 Failed I2C Bus 1" - echo " 5 Failed I2C Bus 3" - echo " 6 Failed Camera" - echo " 7 Failed Payload" - echo " 8 Failed BME Sensor" - echo " 9 Failed MPU Sensor" -# echo "10 Failed FM Audio" - echo - -# echo "Enter the failure number to set: 0 - 10" # 10 sometimes gets stuck on carrier - echo "Enter the failure number to set: 0 - 9" - read MODE - echo if [ "$MODE" = "0" ]; then echo "Setting No Simulated Failure" From f06a4f5e7d13a855bde722f5b67f5d1ce17d3f36 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:51:55 -0400 Subject: [PATCH 45/57] Update config move echo --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index fc042a8d..014b06e2 100755 --- a/config +++ b/config @@ -1561,9 +1561,9 @@ elif [ "$1" = "-M" ]; then # echo "Enter the failure number to set: 0 - 10" # 10 sometimes gets stuck on carrier echo "Enter the failure number to set: 0 - 9" read MODE + echo fi - echo if [ "$MODE" = "0" ]; then echo "Setting No Simulated Failure" MODE=-1 From 5f34c587ca26bd35bee0eab8ba5b12a1bd99b428 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:53:06 -0400 Subject: [PATCH 46/57] Update config extra blank line --- config | 1 + 1 file changed, 1 insertion(+) diff --git a/config b/config index 014b06e2..72211f88 100755 --- a/config +++ b/config @@ -210,6 +210,7 @@ function transmit_command_beacon { exit } +echo echo "CubeSatSim v2.1 configuration tool" echo # echo $1 From ce268e99e59d3aed3f9d46a33e4bd5f4be3f5759 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:54:23 -0400 Subject: [PATCH 47/57] Update config v2.2 --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index 72211f88..014ae111 100755 --- a/config +++ b/config @@ -211,7 +211,7 @@ function transmit_command_beacon { } echo -echo "CubeSatSim v2.1 configuration tool" +echo "CubeSatSim v2.2 configuration tool" echo # echo $1 # echo $2 From c08b57bfc18ba498b005065580869ea2de8672f7 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:54:43 -0400 Subject: [PATCH 48/57] Update main.c v2.2 --- main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.c b/main.c index 1ac35b14..cbb42105 100644 --- a/main.c +++ b/main.c @@ -25,7 +25,7 @@ int main(int argc, char * argv[]) { - printf("\n\nCubeSatSim v2.1 starting...\n\n"); + printf("\n\nCubeSatSim v2.2 starting...\n\n"); wiringPiSetup(); From e8686cc1e0042fc6631170b2c656a19708dab2a2 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:55:11 -0400 Subject: [PATCH 49/57] Update install v2.2 --- install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install b/install index fc333a64..3de142d4 100755 --- a/install +++ b/install @@ -1,6 +1,6 @@ #!/bin/bash -echo -e "\ninstallation script for CubeSatSim v2.1\n" +echo -e "\ninstallation script for CubeSatSim v2.2\n" FILE=/home/pi/CubeSatSim/sim.cfg if [ -f "$FILE" ]; then From 5f3d2354792cd21a00758d4dd7cc851c37152486 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:55:46 -0400 Subject: [PATCH 50/57] Update transmit.py v2.2 --- transmit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transmit.py b/transmit.py index 3862feb2..a1da818f 100644 --- a/transmit.py +++ b/transmit.py @@ -145,7 +145,7 @@ def camera_photo(): draw.text((120, 10), telem_string, font=font2, fill='white') img.save(file) -print("CubeSatSim v2.1 transmit.py starting...") +print("CubeSatSim v2.2 transmit.py starting...") pd = 21 ptt = 20 From 3f2b3ad7b7d673e07622704c79be6fd33f5783a9 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 9 Aug 2025 23:56:27 -0400 Subject: [PATCH 51/57] Update telem.c v2.2 --- telem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telem.c b/telem.c index 1fc534a5..ce4f14c3 100644 --- a/telem.c +++ b/telem.c @@ -15,7 +15,7 @@ int main(int argc, char *argv[]) { } } - printf("CubeSatSim v2.1 INA219 Voltage and Current Telemetry\n"); + printf("CubeSatSim v2.2 INA219 Voltage and Current Telemetry\n"); map[MINUS_X] = MINUS_Y; map[PLUS_Z] = MINUS_X; map[MINUS_Y] = PLUS_Z; From 899a2927c603a4c082b4573f0c67712f5e727b27 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 10 Aug 2025 15:35:29 -0400 Subject: [PATCH 52/57] Update transmit.py add fail camera mode check --- transmit.py | 40 +++++++++++----------------------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/transmit.py b/transmit.py index a1da818f..063811d5 100644 --- a/transmit.py +++ b/transmit.py @@ -15,11 +15,16 @@ import random def sim_failure_check(): try: global card + global cam_fail + cam_fail = False file = open("/home/pi/CubeSatSim/failure_mode.txt") fail_mode = file.read(2) if (fail_mode == "10"): card = "Device" # Change audio so no FM audio plays print("Failure mode no FM audio") + else if (fail_mode == "6"): + cam_fail = True + print("Failure mode camera fail") else: print("Other failure mode") card = "Headphones" @@ -110,6 +115,7 @@ def increment_mode(): print("can't write to .mode file") def camera_photo(): + sim_failure_check() system("sudo rm /home/pi/CubeSatSim/camera_out.jpg") stored_image = False try: @@ -117,6 +123,10 @@ def camera_photo(): f = open("/home/pi/CubeSatSim/camera_out.jpg") f.close() print("Photo taken") + if (cam_fail == True): + system("cp /home/pi/CubeSatSim/sstv//sstv_image_2_320_x_256.jpeg /home/pi/CubeSatSim/camera_out.jpg") + print("Using stored image") + stored_image = True except: system("cp /home/pi/CubeSatSim/sstv//sstv_image_2_320_x_256.jpeg /home/pi/CubeSatSim/camera_out.jpg") print("Using stored image") @@ -596,35 +606,7 @@ if __name__ == "__main__": print("image 2 did not load - copy from CubeSatSim/sstv directory") while 1: # command_control_check() - camera_photo() -## system("raspistill -o /home/pi/CubeSatSim/camera_out.jpg -w 320 -h 256") # > /dev/null 2>&1") -## print("Photo taken") -## -## file='/home/pi/CubeSatSim/camera_out.jpg' -## font1 = ImageFont.truetype('DejaVuSerif.ttf', 20) -## font2 = ImageFont.truetype('DejaVuSerif-Bold.ttf', 16) -## -## try: -## filep = open("/home/pi/CubeSatSim/telem_string.txt") -## telem_string = filep.readline() -## except: -## telem_string = "" -## if (debug_mode == 1): -## print("Can't read telem_string.txt") -## print(telem_string) -## -## img = Image.open(file) -## draw = ImageDraw.Draw(img) -# draw.text((10, 10), callsign, font=font2, fill='white') -# draw.text((120, 10), telem_string, font=font2, fill='white') -## draw.text((12, 12), callsign, font=font1, fill='black') -## draw.text((10, 10), callsign, font=font1, fill='white') -## draw.text((122, 12), telem_string, font=font2, fill='black') -## draw.text((120, 10), telem_string, font=font2, fill='white') -## img.save(file) - -# command_control_check() - + camera_photo() system("/home/pi/PiSSTVpp/pisstvpp -r 48000 -p s2 /home/pi/CubeSatSim/camera_out.jpg") system("sudo rm /home/pi/CubeSatSim/camera_out.jpg > /dev/null 2>&1") From 297c951506e45a9fe38245ee6196eed38bc50b01 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 10 Aug 2025 15:40:07 -0400 Subject: [PATCH 53/57] Update transmit.py global cam_fail --- transmit.py | 1 + 1 file changed, 1 insertion(+) diff --git a/transmit.py b/transmit.py index 063811d5..9d949580 100644 --- a/transmit.py +++ b/transmit.py @@ -115,6 +115,7 @@ def increment_mode(): print("can't write to .mode file") def camera_photo(): + global cam_fail sim_failure_check() system("sudo rm /home/pi/CubeSatSim/camera_out.jpg") stored_image = False From 1e33a5303515edd44027922e749c1059abebc17d Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 10 Aug 2025 15:41:10 -0400 Subject: [PATCH 54/57] Update transmit.py elif --- transmit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transmit.py b/transmit.py index 9d949580..3d54fbec 100644 --- a/transmit.py +++ b/transmit.py @@ -22,7 +22,7 @@ def sim_failure_check(): if (fail_mode == "10"): card = "Device" # Change audio so no FM audio plays print("Failure mode no FM audio") - else if (fail_mode == "6"): + elif (fail_mode == "6"): cam_fail = True print("Failure mode camera fail") else: From 9522edd7b12cd89d1b17ace8b56535fe9b59acdd Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 10 Aug 2025 15:45:18 -0400 Subject: [PATCH 55/57] Update transmit.py print fail mode --- transmit.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/transmit.py b/transmit.py index 3d54fbec..5eecd919 100644 --- a/transmit.py +++ b/transmit.py @@ -19,6 +19,8 @@ def sim_failure_check(): cam_fail = False file = open("/home/pi/CubeSatSim/failure_mode.txt") fail_mode = file.read(2) + print("Fail_mode: ") + print(fail_mode) if (fail_mode == "10"): card = "Device" # Change audio so no FM audio plays print("Failure mode no FM audio") From 073da3962e6f9e360630f8bcd03d9a4f52154b98 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 10 Aug 2025 15:47:37 -0400 Subject: [PATCH 56/57] Update transmit.py change fail_mode to int --- transmit.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/transmit.py b/transmit.py index 5eecd919..bd0fd8ce 100644 --- a/transmit.py +++ b/transmit.py @@ -18,13 +18,13 @@ def sim_failure_check(): global cam_fail cam_fail = False file = open("/home/pi/CubeSatSim/failure_mode.txt") - fail_mode = file.read(2) + fail_mode = int(file.read(2)) print("Fail_mode: ") print(fail_mode) - if (fail_mode == "10"): + if (fail_mode == 10): card = "Device" # Change audio so no FM audio plays print("Failure mode no FM audio") - elif (fail_mode == "6"): + elif (fail_mode == 6): cam_fail = True print("Failure mode camera fail") else: From 535ca7c6a0b4682d125e6db7f6a192608cfe5b94 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 10 Aug 2025 15:57:10 -0400 Subject: [PATCH 57/57] Update transmit.py fix no failure mode --- transmit.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/transmit.py b/transmit.py index bd0fd8ce..fc745f45 100644 --- a/transmit.py +++ b/transmit.py @@ -19,14 +19,16 @@ def sim_failure_check(): cam_fail = False file = open("/home/pi/CubeSatSim/failure_mode.txt") fail_mode = int(file.read(2)) - print("Fail_mode: ") - print(fail_mode) +# print("Fail_mode: ") +# print(fail_mode) if (fail_mode == 10): card = "Device" # Change audio so no FM audio plays print("Failure mode no FM audio") elif (fail_mode == 6): cam_fail = True print("Failure mode camera fail") + elif (fail_mode == 0): + print("No failure mode") else: print("Other failure mode") card = "Headphones"