From 0d44c8d3db18d1a1512228c1128beeb4ef353e6f Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 08:18:40 -0400 Subject: [PATCH 01/27] send empty FSK or BPSK frames before starting python --- afsk/main.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 8f128b6a..6c46508b 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -395,15 +395,6 @@ int main(int argc, char * argv[]) { snprintf(busStr, 10, "%d %d", test_i2c_bus(1), test_i2c_bus(0)); voltageThreshold = 8.0; } - - strcpy(pythonStr, pythonCmd); - strcat(pythonStr, busStr); - strcat(pythonConfigStr, pythonStr); - strcat(pythonConfigStr, " c"); - - fprintf(stderr, "pythonConfigStr: %s\n", pythonConfigStr); - - file1 = sopen(pythonConfigStr); // try new function // test i2c buses fflush(stdout); @@ -433,9 +424,6 @@ int main(int argc, char * argv[]) { printf("INFO: I2C bus status 0: %d 1: %d 3: %d camera: %d\n", i2c_bus0, i2c_bus1, i2c_bus3, camera); #endif - fgets(cmdbuffer, 1000, file1); - fprintf(stderr, "pythonStr result: %s\n", cmdbuffer); - FILE * file5 = popen("sudo rm /home/pi/CubeSatSim/t.txt > /dev/null 2>&1", "r"); pclose(file5); @@ -620,6 +608,27 @@ int main(int argc, char * argv[]) { } printf("\n"); } + + memset(voltage, 0, sizeof(voltage)); + memset(current, 0, sizeof(current)); + memset(sensor, 0, sizeof(sensor)); + memset(other, 0, sizeof(other)); + + if ((mode == FSK) || (mode == BPSK)) {// FSK or BPSK + get_tlm_fox(); + firstTime = 1; + + fgets(cmdbuffer, 1000, file1); + fprintf(stderr, "pythonStr result: %s\n", cmdbuffer); + + strcpy(pythonStr, pythonCmd); + strcat(pythonStr, busStr); + strcat(pythonConfigStr, pythonStr); + strcat(pythonConfigStr, " c"); + + fprintf(stderr, "pythonConfigStr: %s\n", pythonConfigStr); + + file1 = sopen(pythonConfigStr); // python sensor polling function long int loopTime; loopTime = millis(); From 9ec7575a3a526329f73cb4c1006a492a609b354a Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 08:21:39 -0400 Subject: [PATCH 02/27] { typo --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 6c46508b..d192f819 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -614,7 +614,7 @@ int main(int argc, char * argv[]) { memset(sensor, 0, sizeof(sensor)); memset(other, 0, sizeof(other)); - if ((mode == FSK) || (mode == BPSK)) {// FSK or BPSK + if ((mode == FSK) || (mode == BPSK)) get_tlm_fox(); firstTime = 1; From 3bd32d2388e816d9d697a6a26e1b90ae5896fc61 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 08:31:52 -0400 Subject: [PATCH 03/27] fixed order of python call --- afsk/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index d192f819..a56cfe89 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -618,9 +618,6 @@ int main(int argc, char * argv[]) { get_tlm_fox(); firstTime = 1; - fgets(cmdbuffer, 1000, file1); - fprintf(stderr, "pythonStr result: %s\n", cmdbuffer); - strcpy(pythonStr, pythonCmd); strcat(pythonStr, busStr); strcat(pythonConfigStr, pythonStr); @@ -630,6 +627,9 @@ int main(int argc, char * argv[]) { file1 = sopen(pythonConfigStr); // python sensor polling function + fgets(cmdbuffer, 1000, file1); + fprintf(stderr, "pythonStr result: %s\n", cmdbuffer); + long int loopTime; loopTime = millis(); From b2fcbef0846f63a73c174b11e742ba3c527fedb2 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 08:54:40 -0400 Subject: [PATCH 04/27] only open python if not sim mode --- afsk/main.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index a56cfe89..c596c8f4 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -618,18 +618,21 @@ int main(int argc, char * argv[]) { get_tlm_fox(); firstTime = 1; - strcpy(pythonStr, pythonCmd); - strcat(pythonStr, busStr); - strcat(pythonConfigStr, pythonStr); - strcat(pythonConfigStr, " c"); + if (!sim_mode) + { + strcpy(pythonStr, pythonCmd); + strcat(pythonStr, busStr); + strcat(pythonConfigStr, pythonStr); + strcat(pythonConfigStr, " c"); - fprintf(stderr, "pythonConfigStr: %s\n", pythonConfigStr); + fprintf(stderr, "pythonConfigStr: %s\n", pythonConfigStr); - file1 = sopen(pythonConfigStr); // python sensor polling function + file1 = sopen(pythonConfigStr); // python sensor polling function - fgets(cmdbuffer, 1000, file1); - fprintf(stderr, "pythonStr result: %s\n", cmdbuffer); - + fgets(cmdbuffer, 1000, file1); + fprintf(stderr, "pythonStr result: %s\n", cmdbuffer); + } + long int loopTime; loopTime = millis(); From c47bb85d1cb413a1ef93054a7284df95789ba755 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 08:59:53 -0400 Subject: [PATCH 05/27] in test_i2c_bus reduced timeout from 10 to 5 --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index c596c8f4..d26effcf 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -2583,7 +2583,7 @@ int test_i2c_bus(int bus) if (access(busDev, W_OK | R_OK) >= 0) { // Test if I2C Bus is present // printf("bus is present\n\n"); char result[128]; - const char command_start[] = "timeout 10 i2cdetect -y "; + const char command_start[] = "timeout 5 i2cdetect -y "; // was 10 char command[50]; strcpy (command, command_start); strcat (command, busS); From 8752822a3ea2b244cf766f78fe56293d01fd96eb Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 09:17:36 -0400 Subject: [PATCH 06/27] if uptime = 0, reset count = 0 so fill frames are ignored at start --- afsk/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index d26effcf..4f140127 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -1756,7 +1756,8 @@ void get_tlm_fox() { // printf("h[0] %x\n", h[0]); h[1] = (short int) ((reset_count >> 5) & 0xff); // printf("h[1] %x\n", h[1]); - h[2] = (short int) ((h[2] & 0xf8) | ((reset_count >> 13) & 0x07)); + if (uptime != 0) // if uptime is 0, leave reset count at 0 + h[2] = (short int) ((h[2] & 0xf8) | ((reset_count >> 13) & 0x07)); // printf("h[2] %x\n", h[2]); h[2] = (short int) ((h[2] & 0x0e) | ((uptime & 0x1f) << 3)); // printf("h[2] %x\n", h[2]); From ff5d55c4f0f4c6a575f118fb116b59f8c623751d Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 09:22:53 -0400 Subject: [PATCH 07/27] fixed reset count 0 if uptime 0 --- afsk/main.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 4f140127..4142623f 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -132,8 +132,8 @@ void write_to_buffer(int i, int symbol, int val); void write_wave(int i, short int * buffer); int uart_fd; -int reset_count; -float uptime_sec; +int reset_count = 0; +float uptime_sec = 0; long int uptime; char call[5]; char sim_yes[10]; @@ -1751,16 +1751,13 @@ void get_tlm_fox() { //printf("Sleep over\n"); h[0] = (short int) ((h[0] & 0xf8) | (id & 0x07)); // 3 bits - // printf("h[0] %x\n", h[0]); - h[0] = (short int) ((h[0] & 0x07) | ((reset_count & 0x1f) << 3)); - // printf("h[0] %x\n", h[0]); - h[1] = (short int) ((reset_count >> 5) & 0xff); - // printf("h[1] %x\n", h[1]); - if (uptime != 0) // if uptime is 0, leave reset count at 0 + if (uptime != 0) // if uptime is 0, leave reset count at 0 + { + h[0] = (short int) ((h[0] & 0x07) | ((reset_count & 0x1f) << 3)); + h[1] = (short int) ((reset_count >> 5) & 0xff); h[2] = (short int) ((h[2] & 0xf8) | ((reset_count >> 13) & 0x07)); - // printf("h[2] %x\n", h[2]); + } h[2] = (short int) ((h[2] & 0x0e) | ((uptime & 0x1f) << 3)); - // printf("h[2] %x\n", h[2]); h[3] = (short int) ((uptime >> 5) & 0xff); h[4] = (short int) ((uptime >> 13) & 0xff); h[5] = (short int) ((h[5] & 0xf0) | ((uptime >> 21) & 0x0f)); From ca0fe0ce3bf36bf7610e6659d69e73c3ccae3e31 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 09:27:48 -0400 Subject: [PATCH 08/27] moved max min reset to after buffer fill frames --- afsk/main.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 4142623f..16e5a44a 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -538,22 +538,6 @@ int main(int argc, char * argv[]) { fprintf(stderr, " See http://cubesatsim.org/wiki for info about building a CubeSatSim\n\n"); } - for (int i = 0; i < 9; i++) { - voltage_min[i] = 1000.0; - current_min[i] = 1000.0; - voltage_max[i] = -1000.0; - current_max[i] = -1000.0; - } - for (int i = 0; i < 17; i++) { - sensor_min[i] = 1000.0; - sensor_max[i] = -1000.0; - // printf("Sensor min and max initialized!"); - } - for (int i = 0; i < 3; i++) { - other_min[i] = 1000.0; - other_max[i] = -1000.0; - } - if (mode == FSK) { bitRate = 200; rsFrames = 1; @@ -615,7 +599,7 @@ int main(int argc, char * argv[]) { memset(other, 0, sizeof(other)); if ((mode == FSK) || (mode == BPSK)) - get_tlm_fox(); + get_tlm_fox(); // fill transmit buffer with reset count 0 packets that will be ignored firstTime = 1; if (!sim_mode) @@ -632,6 +616,22 @@ int main(int argc, char * argv[]) { fgets(cmdbuffer, 1000, file1); fprintf(stderr, "pythonStr result: %s\n", cmdbuffer); } + + for (int i = 0; i < 9; i++) { + voltage_min[i] = 1000.0; + current_min[i] = 1000.0; + voltage_max[i] = -1000.0; + current_max[i] = -1000.0; + } + for (int i = 0; i < 17; i++) { + sensor_min[i] = 1000.0; + sensor_max[i] = -1000.0; + // printf("Sensor min and max initialized!"); + } + for (int i = 0; i < 3; i++) { + other_min[i] = 1000.0; + other_max[i] = -1000.0; + } long int loopTime; loopTime = millis(); From 12a8678254b83ba82bc66c4be581524791c8120b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 09:36:22 -0400 Subject: [PATCH 09/27] use invalid frame type of 0xf if uptime = 0 for filler frames --- afsk/main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/afsk/main.c b/afsk/main.c index 16e5a44a..d936b336 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -1400,6 +1400,9 @@ void get_tlm_fox() { short int buffer_test[bufLen]; int buffSize; buffSize = (int) sizeof(buffer_test); + + if (uptime == 0) + frm_type = 0xf; // set to invalid frame type if (mode == FSK) id = 7; From bf5ecbcdaba77dad45188e1964904274169ba7f3 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 09:47:50 -0400 Subject: [PATCH 10/27] moved frm_type set to 0xf --- afsk/main.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index d936b336..55dc48f5 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -1401,9 +1401,6 @@ void get_tlm_fox() { int buffSize; buffSize = (int) sizeof(buffer_test); - if (uptime == 0) - frm_type = 0xf; // set to invalid frame type - if (mode == FSK) id = 7; else @@ -1736,7 +1733,11 @@ void get_tlm_fox() { } else frm_type = 0x02; // BPSK always send MAX MIN frame - } + } + + if (uptime == 0) + frm_type = 0xf; // set to invalid frame type + sensor_payload[0] = 0; // clear for next payload // if (mode == FSK) { // remove this From 527c1454fa2a2652249f4a611ba67090ac83bcfb Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 09:52:46 -0400 Subject: [PATCH 11/27] change 0xf to 0x5 --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 55dc48f5..eb90f32e 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -1736,7 +1736,7 @@ void get_tlm_fox() { } if (uptime == 0) - frm_type = 0xf; // set to invalid frame type + frm_type = 0x5; // set to invalid frame type sensor_payload[0] = 0; // clear for next payload From 67b91914d58cb025bc949f3292fe879669c32684 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 10:05:27 -0400 Subject: [PATCH 12/27] removed invalid frm_typ for now --- afsk/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index eb90f32e..698e2629 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -1734,10 +1734,10 @@ void get_tlm_fox() { else frm_type = 0x02; // BPSK always send MAX MIN frame } - +/* if (uptime == 0) frm_type = 0x5; // set to invalid frame type - +*/ sensor_payload[0] = 0; // clear for next payload // if (mode == FSK) { // remove this From a2cdf32049be62742d4624f5632be3228917562d Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 17:02:43 -0400 Subject: [PATCH 13/27] skipped an rs_update step if uptime is zero so that the frame will fail the RS FEC check and be discarded --- afsk/main.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 698e2629..59154843 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -1733,11 +1733,7 @@ void get_tlm_fox() { } else frm_type = 0x02; // BPSK always send MAX MIN frame - } -/* - if (uptime == 0) - frm_type = 0x5; // set to invalid frame type -*/ + } sensor_payload[0] = 0; // clear for next payload // if (mode == FSK) { // remove this @@ -2026,7 +2022,8 @@ void get_tlm_fox() { { if (ctr1 < headerLen) { rs_frame[j][i] = h[ctr1]; - update_rs(parities[j], h[ctr1]); + if (uptime != 0) // skip updated the RS FEC if uptime is 0 so the frame will fail the FEC check and be discarded + update_rs(parities[j], h[ctr1]); // printf("header %d rs_frame[%d][%d] = %x \n", ctr1, j, i, h[ctr1]); data8[ctr1++] = rs_frame[j][i]; // printf ("data8[%d] = %x \n", ctr1 - 1, rs_frame[j][i]); From d94c988d5e88a2ba0dac03c351680e2069d3e05b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 17:10:38 -0400 Subject: [PATCH 14/27] try again skipping FEC --- afsk/main.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 59154843..c3163e28 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -2022,8 +2022,7 @@ void get_tlm_fox() { { if (ctr1 < headerLen) { rs_frame[j][i] = h[ctr1]; - if (uptime != 0) // skip updated the RS FEC if uptime is 0 so the frame will fail the FEC check and be discarded - update_rs(parities[j], h[ctr1]); + update_rs(parities[j], h[ctr1]); // printf("header %d rs_frame[%d][%d] = %x \n", ctr1, j, i, h[ctr1]); data8[ctr1++] = rs_frame[j][i]; // printf ("data8[%d] = %x \n", ctr1 - 1, rs_frame[j][i]); @@ -2088,14 +2087,17 @@ void get_tlm_fox() { rd = nrd; // ^ nrd; ctr2++; } - for (i = 0; i < parityLen; i++) { - for (int j = 0; j < rsFrames; j++) { - data10[ctr2++] = (Encode_8b10b[rd][((int) parities[j][i])] & 0x3ff); - nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; + if (uptime != 0) // skip update parties if uptime is 0 so the frame will fail the FEC check and be discarded + { + for (i = 0; i < parityLen; i++) { + for (int j = 0; j < rsFrames; j++) { + data10[ctr2++] = (Encode_8b10b[rd][((int) parities[j][i])] & 0x3ff); + nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; // printf ("data10[%d] = encoded parities[%d][%d] = %x \n", // ctr2 - 1, j, i, data10[ctr2 - 1]); - rd = nrd; + rd = nrd; + } } } #ifdef DEBUG_LOGGING From 4e8be76561ad7eced085f0ed7410a5603370a178 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 22:58:05 -0400 Subject: [PATCH 15/27] rm camera_out.jpg not t.txt --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index c3163e28..c9a7258e 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -424,7 +424,7 @@ int main(int argc, char * argv[]) { printf("INFO: I2C bus status 0: %d 1: %d 3: %d camera: %d\n", i2c_bus0, i2c_bus1, i2c_bus3, camera); #endif - FILE * file5 = popen("sudo rm /home/pi/CubeSatSim/t.txt > /dev/null 2>&1", "r"); + FILE * file5 = popen("sudo rm /home/pi/CubeSatSim/camera_out.jpg > /dev/null 2>&1", "r"); pclose(file5); // try connecting to STEM Payload board using UART From d32debf636cd6e016d2613f2c2a1bdff769cca81 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 23:08:47 -0400 Subject: [PATCH 16/27] if t.txt not there, create it --- rpitx.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rpitx.py b/rpitx.py index b4f2d94d..dc650a3d 100644 --- a/rpitx.py +++ b/rpitx.py @@ -98,6 +98,11 @@ if __name__ == "__main__": if (mode == 'a'): print("AFSK") # time.sleep(4) + try: + file = open("/home/pi/CubeSatSim/t.txt") + file.close() + except: + system("echo '" + callsign + ">APCSS:hi hi 100 199 199 199 298 299 299 278 380 350 300 300 439 400 400 400 500 500 500 500 600 600 600 650' > t.txt") for x in range(5): GPIO.output(txLed, txLedOn) if (debug_mode == 1): From 5c913e18301fe32818c10860344f4975064c4d48 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 23:14:06 -0400 Subject: [PATCH 17/27] change to pi instead of root --- systemd/rpitx.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd/rpitx.service b/systemd/rpitx.service index 2f2feac2..7486d073 100644 --- a/systemd/rpitx.service +++ b/systemd/rpitx.service @@ -8,7 +8,7 @@ WorkingDirectory=/home/pi/CubeSatSim StandardOutput=inherit StandardError=inherit Restart=always -User=root +User=pi [Install] WantedBy=default.target From 7af72051e32127b34ded74d98e7fad4bd59d4982 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 23:23:00 -0400 Subject: [PATCH 18/27] added extra to generated t.txt --- rpitx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpitx.py b/rpitx.py index dc650a3d..9dc51565 100644 --- a/rpitx.py +++ b/rpitx.py @@ -102,7 +102,7 @@ if __name__ == "__main__": file = open("/home/pi/CubeSatSim/t.txt") file.close() except: - system("echo '" + callsign + ">APCSS:hi hi 100 199 199 199 298 299 299 278 380 350 300 300 439 400 400 400 500 500 500 500 600 600 600 650' > t.txt") + system("echo '" + callsign + ">APCSS:hi hi 100 199 199 199 298 299 299 278 380 350 300 300 439 400 400 400 500 500 500 500 600 600 600 650' > t.txt && echo 'AMSAT>APCSS:010101/hi hi ' >> t.txt") for x in range(5): GPIO.output(txLed, txLedOn) if (debug_mode == 1): From 6dfa51ea13d4ad5ca6c9bedbc87effda9ffa6caf Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 23:27:09 -0400 Subject: [PATCH 19/27] changed sudo gen_packets to gen_packets --- rpitx.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rpitx.py b/rpitx.py index 9dc51565..79daba97 100644 --- a/rpitx.py +++ b/rpitx.py @@ -106,9 +106,9 @@ if __name__ == "__main__": for x in range(5): GPIO.output(txLed, txLedOn) if (debug_mode == 1): - 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") + system("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") else: - 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") + system("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(0.2) GPIO.output(txLed, txLedOff) time.sleep(3.8) @@ -117,9 +117,9 @@ if __name__ == "__main__": f = open("/home/pi/CubeSatSim/ready") GPIO.output(txLed, txLedOn) if (debug_mode == 1): - 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") + system("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") else: - 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") + system("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") GPIO.output(txLed, txLedOff) f.close() system("sudo rm ready") @@ -131,9 +131,9 @@ if __name__ == "__main__": # time.sleep(4) GPIO.output(txLed, txLedOn) if (debug_mode == 1): - system("sudo gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw.txt -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") + system("gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw.txt -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") else: - system("sudo gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw.txt -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 > /dev/null 2>&1") + system("gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw.txt -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 > /dev/null 2>&1") GPIO.output(txLed, txLedOff) while True: @@ -141,9 +141,9 @@ if __name__ == "__main__": f = open("/home/pi/CubeSatSim/cwready") GPIO.output(txLed, txLedOn) if (debug_mode == 1): - system("sudo gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw.txt -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") + system("gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw.txt -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") else: - system("sudo gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw.txt -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 > /dev/null 2>&1") + system("gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw.txt -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 > /dev/null 2>&1") GPIO.output(txLed, txLedOff) f.close() system("sudo rm cwready") From faf1c81bf2aba4b9eecfb0fde5a0491a45781a76 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 23:32:32 -0400 Subject: [PATCH 20/27] added cw.txt if not present first time --- rpitx.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rpitx.py b/rpitx.py index 79daba97..c3af11c8 100644 --- a/rpitx.py +++ b/rpitx.py @@ -102,7 +102,7 @@ if __name__ == "__main__": file = open("/home/pi/CubeSatSim/t.txt") file.close() except: - system("echo '" + callsign + ">APCSS:hi hi 100 199 199 199 298 299 299 278 380 350 300 300 439 400 400 400 500 500 500 500 600 600 600 650' > t.txt && echo 'AMSAT>APCSS:010101/hi hi ' >> t.txt") + system("echo '" + callsign + ">APCSS:hi hi 100 199 199 199 298 299 299 278 380 350 300 300 439 400 400 400 500 500 500 500 600 600 600 650' > /home/pi/CubeSatSim/t.txt && echo 'AMSAT>APCSS:010101/hi hi ' >> /home/pi/CubeSatSim/t.txt") for x in range(5): GPIO.output(txLed, txLedOn) if (debug_mode == 1): @@ -129,6 +129,11 @@ if __name__ == "__main__": elif (mode == 'm'): print("CW") # time.sleep(4) + try: + file = open("/home/pi/CubeSatSim/cw.txt") + file.close() + except: + system("echo 'hi hi 100 199 199 199 298 299 299 278 380 350 300 300 439 400 400 400 500 500 500 500 600 600 600 650' > /home/pi/CubeSatSim/cw.txt") GPIO.output(txLed, txLedOn) if (debug_mode == 1): system("gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw.txt -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") From 76dcff82ddbf03912c9f588924c528693df987e6 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Wed, 23 Jun 2021 23:36:39 -0400 Subject: [PATCH 21/27] added cw ones --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 9729ee8c..220663f2 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,6 @@ sstv_image_2_320_x_256.jpg.wav t.txt telem telem.wav +cw.txt +cwready +logr.txt From 1fd4c7a2dd7492cf11120d6db23be06aae828457 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Thu, 24 Jun 2021 08:23:17 -0400 Subject: [PATCH 22/27] changed parties updating for uptime of 0 --- afsk/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index c9a7258e..7c2a9349 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -2087,19 +2087,19 @@ void get_tlm_fox() { rd = nrd; // ^ nrd; ctr2++; } - if (uptime != 0) // skip update parties if uptime is 0 so the frame will fail the FEC check and be discarded - { +// { for (i = 0; i < parityLen; i++) { for (int j = 0; j < rsFrames; j++) { data10[ctr2++] = (Encode_8b10b[rd][((int) parities[j][i])] & 0x3ff); - nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; + if (uptime != 0) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded + nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; // printf ("data10[%d] = encoded parities[%d][%d] = %x \n", // ctr2 - 1, j, i, data10[ctr2 - 1]); rd = nrd; } } - } + // } #ifdef DEBUG_LOGGING // printf("\nAt end of data10 write, %d ctr2 values written\n\n", ctr2); #endif From e747804ae948fb1e6292a0ad3f9e0aa38b6ea35a Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Thu, 24 Jun 2021 08:33:47 -0400 Subject: [PATCH 23/27] try again incorrect updates --- afsk/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 7c2a9349..9a089888 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -2090,9 +2090,9 @@ void get_tlm_fox() { // { for (i = 0; i < parityLen; i++) { for (int j = 0; j < rsFrames; j++) { - data10[ctr2++] = (Encode_8b10b[rd][((int) parities[j][i])] & 0x3ff); - if (uptime != 0) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded - nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; + if (uptime != 0) || (i % 3 != 0) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded + data10[ctr2++] = (Encode_8b10b[rd][((int) parities[j][i])] & 0x3ff); + nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; // printf ("data10[%d] = encoded parities[%d][%d] = %x \n", // ctr2 - 1, j, i, data10[ctr2 - 1]); From b94195be9365e3511cfb4b8c41c138e4af594c9d Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Thu, 24 Jun 2021 08:36:17 -0400 Subject: [PATCH 24/27] try 2 --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 9a089888..4635670d 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -2090,7 +2090,7 @@ void get_tlm_fox() { // { for (i = 0; i < parityLen; i++) { for (int j = 0; j < rsFrames; j++) { - if (uptime != 0) || (i % 3 != 0) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded + if (uptime != 0) || (i % 2 != 0) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded data10[ctr2++] = (Encode_8b10b[rd][((int) parities[j][i])] & 0x3ff); nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; // printf ("data10[%d] = encoded parities[%d][%d] = %x \n", From 2ea8ba93946c3f07d4e71e19def56c1d56d5b013 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Thu, 24 Jun 2021 08:36:51 -0400 Subject: [PATCH 25/27] typo --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 4635670d..a2820200 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -2090,7 +2090,7 @@ void get_tlm_fox() { // { for (i = 0; i < parityLen; i++) { for (int j = 0; j < rsFrames; j++) { - if (uptime != 0) || (i % 2 != 0) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded + if ((uptime != 0) || (i % 3 != 0)) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded data10[ctr2++] = (Encode_8b10b[rd][((int) parities[j][i])] & 0x3ff); nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; // printf ("data10[%d] = encoded parities[%d][%d] = %x \n", From d9b358a4310904e96643bac988df14f31424d46f Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Thu, 24 Jun 2021 08:40:56 -0400 Subject: [PATCH 26/27] try 4 --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index a2820200..1310d693 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -2090,7 +2090,7 @@ void get_tlm_fox() { // { for (i = 0; i < parityLen; i++) { for (int j = 0; j < rsFrames; j++) { - if ((uptime != 0) || (i % 3 != 0)) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded + if ((uptime != 0) || (i % 4 != 0)) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded data10[ctr2++] = (Encode_8b10b[rd][((int) parities[j][i])] & 0x3ff); nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; // printf ("data10[%d] = encoded parities[%d][%d] = %x \n", From c1e809359442bde7707e3ef01cf4d8ced880744e Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Thu, 24 Jun 2021 08:42:50 -0400 Subject: [PATCH 27/27] try just i=0 --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 1310d693..3aa450e4 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -2090,7 +2090,7 @@ void get_tlm_fox() { // { for (i = 0; i < parityLen; i++) { for (int j = 0; j < rsFrames; j++) { - if ((uptime != 0) || (i % 4 != 0)) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded + if ((uptime != 0) || (i != 0)) // don't correctly update parties if uptime is 0 so the frame will fail the FEC check and be discarded data10[ctr2++] = (Encode_8b10b[rd][((int) parities[j][i])] & 0x3ff); nrd = (Encode_8b10b[rd][((int) parities[j][i])] >> 10) & 1; // printf ("data10[%d] = encoded parities[%d][%d] = %x \n",