From 4bc0a13ecbb378d6a5dec634c377318964ec5ed0 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 16:20:04 -0400 Subject: [PATCH 01/60] changed to do nothing with exit --- demo.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/demo.sh b/demo.sh index 23965878..dfc79fc4 100755 --- a/demo.sh +++ b/demo.sh @@ -2,6 +2,8 @@ echo -e "\nDemo of CubeSatSim sends FSK and BPSK telemetry alternately at 434.9 MHz continuously\n\n" +exit + sudo killall -9 rpitx sudo killall -9 sendiq sudo fuser -k 8080/tcp From 43c2f5703325f868bfaeaf5f48f0445c55b65960 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 16:20:54 -0400 Subject: [PATCH 02/60] turned on mode alternation --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 3bc45be4..d7c641fb 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -325,7 +325,7 @@ int main(int argc, char *argv[]) { while (loop-- != 0) { printf("Mode before: %d \n", mode); -// mode = (++mode) % 3; + mode = (++mode) % 3; printf("Mode after: %d \n", mode); if (mode == FSK) { From 1fb9fbe0b8fba6def7f6b8aeeae4bc36b635b86d Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 16:34:19 -0400 Subject: [PATCH 03/60] BPSK frame count to 3, added debugs --- afsk/main.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index d7c641fb..9336df1f 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -356,7 +356,7 @@ int main(int argc, char *argv[]) { syncBits = 31; syncWord = 0b1000111110011010010000101011101; parityLen = 32; - frameCnt = 4; // 3; + frameCnt = 3; // 3; amplitude = 32767; samples = S_RATE/bitRate; bufLen = (frameCnt * (syncBits + 10 * (headerLen + rsFrames * (rsFrameLen + parityLen))) * samples); @@ -513,7 +513,7 @@ int get_tlm(char *str) { // printf("%s",tlm_str); strcat(str, tlm_str); } - printf("End of get_tlm\n"); + printf("End of get_tlm =========================================================\n"); return; } @@ -758,13 +758,18 @@ int get_tlm_fox() { rd = nrd; } } + #ifdef DEBUG_LOGGING printf("\nAt end of data10 write, %d ctr2 values written\n\n", ctr2); - + #endif + int data; int val; int offset = 0; + #ifdef DEBUG_LOGGING printf("\nAt start of buffer loop, syncBits %d samples %d ctr %d\n", syncBits, samples, ctr); + #endif + // for (i = 1; i <= SYNC_BITS * SAMPLES; i++) for (i = 1; i <= syncBits * samples; i++) { @@ -797,8 +802,10 @@ int get_tlm_fox() { } } } + #ifdef DEBUG_LOGGING printf("\n\nValue of ctr after header: %d Buffer Len: %d\n\n", ctr, buffSize); - for (i = 1; + #endif + for (i = 1; // i <= (10 * (HEADER_LEN + DATA_LEN * PAYLOADS + RS_FRAMES * PARITY_LEN) * SAMPLES); i++) // 572 i <= (10 * (headerLen + dataLen * payloads + rsFrames * parityLen) * samples); i++) // 572 { @@ -833,11 +840,11 @@ int get_tlm_fox() { } } } + #ifdef DEBUG_LOGGING printf("\nValue of ctr after looping: %d Buffer Len: %d\n", ctr, buffSize); printf("\ctr/samples = %d ctr/(samples*10) = %d\n\n", ctr/samples, ctr/(samples*10)); - -// write_wav("transmit.wav", BUF_LEN, buffer, S_RATE); - write_wav("transmit.wav", ctr, buffer, S_RATE); + #endif +// write_wav("transmit.wav", ctr, buffer, S_RATE); int error = 0; int count; From 7f4b533b8f80a055b40d1a77f24dc84ada88dced Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 16:38:43 -0400 Subject: [PATCH 04/60] Update main.c --- afsk/main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 9336df1f..4313c779 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -527,7 +527,9 @@ int get_tlm_fox() { FILE* uptime_file = fopen("/proc/uptime", "r"); fscanf(uptime_file, "%f", &uptime_sec); uptime = (int) uptime_sec; + #ifdef DEBUG_LOGGING printf("Reset Count: %d Uptime since Reset: %ld \n", reset_count, uptime); + #endif fclose(uptime_file); int i; @@ -718,10 +720,11 @@ int get_tlm_fox() { } } } - printf("\nAt end of data8 write, %d ctr1 values written\n\n", ctr1); #ifdef DEBUG_LOGGING - printf("Parities "); + printf("\nAt end of data8 write, %d ctr1 values written\n\n", ctr1); + + printf("Parities "); // for (int m = 0; m < PARITY_LEN; m++) { for (int m = 0; m < parityLen; m++) { printf("%d ", parities[0][m]); From 4fb1c99a1ad7c1feb6f0e91c7b0bdcb1d33ad481 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 16:43:34 -0400 Subject: [PATCH 05/60] added socket_open = 0; after closing of socket --- afsk/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 4313c779..e708c9b4 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -256,7 +256,7 @@ char dest_addr[5] = "CQ"; int main(int argc, char *argv[]) { - mode = FSK; + mode = BPSK; if (argc > 1) { // strcpy(src_addr, argv[1]); @@ -873,6 +873,8 @@ int get_tlm_fox() { // printf("2\n"); sleep(1); transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); + socket_open = 0; + // printf("3\n"); sleep(1); From f5d02d5269f3c7e208012041647ae79e89131517 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 16:58:34 -0400 Subject: [PATCH 06/60] added back rpitx afsk code --- afsk/main.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index e708c9b4..afba41c5 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -370,18 +370,11 @@ int main(int argc, char *argv[]) { #ifdef DEBUG_LOGGING fprintf(stderr,"INFO: Getting TLM Data\n"); #endif - - char str[1000]; - // uint8_t b[64]; - char header_str[] = "\x03\xf0"; - strcpy(str, header_str); - - printf("%s-1>%s-1:", (uint8_t *)src_addr, (uint8_t *)dest_addr); - + if (mode == AFSK) get_tlm(str); else // FSK or BPSK - get_tlm_fox(); + get_tlm_fox();strcpy(str, header_str2); #ifdef DEBUG_LOGGING fprintf(stderr,"INFO: Getting ready to send\n"); @@ -497,10 +490,14 @@ int get_tlm(char *str) { } #endif + char header_str2[] = "echo 'KU2Y>CQ:hi hi "; + char footer_str[] = "\' > t.txt && echo \'KU2Y>CQ:hi hi ' >> t.txt && gen_packets -o telem.wav t.txt -r 48000 > /dev/null 2>&1 && cat telem.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/CubeSatSim/rpitx/rpitx -i- -m RF -f 434.9e3 > /dev/null 2>&1"; + +// printf("%s-1>%s-1:", (uint8_t *)src_addr, (uint8_t *)dest_addr); + char tlm_str[1000]; - char header_str[] = "hi hi "; - strcpy(str, header_str); + strcpy(str, header_str2); // printf("%s-1>%s-1:hi hi ", (uint8_t *)src_addr, (uint8_t *)dest_addr); int channel; @@ -513,7 +510,16 @@ int get_tlm(char *str) { // printf("%s",tlm_str); strcat(str, tlm_str); } - printf("End of get_tlm =========================================================\n"); + +// char cmdbuffer[1000]; + strcat(tlm_str,footer_str); + fprintf(stderr, "String to execute: %s\n", tlm_str); + FILE* file2 = popen(tlm_str, "r"); +// fgets(cmdbuffer, 999, file2); + pclose(file2); +// printf("Response: %s\n", cmdbuffer); +// fprintf(stderr, "Response\n"); + printf("End of get_tlm and rpitx =========================================================\n"); return; } From 8ee7a590f385ca8de19948baedb3b7a1012a8a6a Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 17:09:41 -0400 Subject: [PATCH 07/60] fixed str typos --- afsk/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index afba41c5..e1f96e8d 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -68,7 +68,7 @@ ax5043_conf_t hax5043; ax25_conf_t hax25; int twosToInt(int val, int len); -int get_tlm(char *str); +int get_tlm(void); int get_tlm_fox(); int encodeA(short int *b, int index, int val); int encodeB(short int *b, int index, int val); @@ -372,9 +372,9 @@ int main(int argc, char *argv[]) { #endif if (mode == AFSK) - get_tlm(str); + get_tlm(); else // FSK or BPSK - get_tlm_fox();strcpy(str, header_str2); + get_tlm_fox(); #ifdef DEBUG_LOGGING fprintf(stderr,"INFO: Getting ready to send\n"); @@ -420,7 +420,7 @@ int upper_digit(int number) { return digit; } -int get_tlm(char *str) { +int get_tlm(void) { int tlm[7][5]; memset(tlm, 0, sizeof tlm); From f3748dffec566e74cf8ab01e6d2efdea7d014158 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 17:11:07 -0400 Subject: [PATCH 08/60] Update main.c --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index e1f96e8d..a744c94f 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -497,7 +497,7 @@ int get_tlm(void) { char tlm_str[1000]; - strcpy(str, header_str2); + strcpy(tlm_str, header_str2); // printf("%s-1>%s-1:hi hi ", (uint8_t *)src_addr, (uint8_t *)dest_addr); int channel; From 4429dd66c91fd01f9d72b819ebac0b1fdf0cce12 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 17:14:03 -0400 Subject: [PATCH 09/60] fixed tlm_str and str errors --- afsk/main.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index a744c94f..09d865d7 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -494,10 +494,11 @@ int get_tlm(void) { char footer_str[] = "\' > t.txt && echo \'KU2Y>CQ:hi hi ' >> t.txt && gen_packets -o telem.wav t.txt -r 48000 > /dev/null 2>&1 && cat telem.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/CubeSatSim/rpitx/rpitx -i- -m RF -f 434.9e3 > /dev/null 2>&1"; // printf("%s-1>%s-1:", (uint8_t *)src_addr, (uint8_t *)dest_addr); - + + char str[1000]; char tlm_str[1000]; - strcpy(tlm_str, header_str2); + strcpy(str, header_str2); // printf("%s-1>%s-1:hi hi ", (uint8_t *)src_addr, (uint8_t *)dest_addr); int channel; @@ -512,9 +513,9 @@ int get_tlm(void) { } // char cmdbuffer[1000]; - strcat(tlm_str,footer_str); - fprintf(stderr, "String to execute: %s\n", tlm_str); - FILE* file2 = popen(tlm_str, "r"); + strcat(str,footer_str); + fprintf(stderr, "String to execute: %s\n", str); + FILE* file2 = popen(str, "r"); // fgets(cmdbuffer, 999, file2); pclose(file2); // printf("Response: %s\n", cmdbuffer); From e5aa68cfebeced6a43bd782fd9bfb6da5cd9a87a Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 17:27:03 -0400 Subject: [PATCH 10/60] send 3 AFSK packets, shift frequency 3 Hz lower --- afsk/main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 09d865d7..ae063a17 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -421,7 +421,8 @@ int upper_digit(int number) { } int get_tlm(void) { - + +for (int j = 0; j < 3; j++); int tlm[7][5]; memset(tlm, 0, sizeof tlm); @@ -491,7 +492,7 @@ int get_tlm(void) { #endif char header_str2[] = "echo 'KU2Y>CQ:hi hi "; - char footer_str[] = "\' > t.txt && echo \'KU2Y>CQ:hi hi ' >> t.txt && gen_packets -o telem.wav t.txt -r 48000 > /dev/null 2>&1 && cat telem.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/CubeSatSim/rpitx/rpitx -i- -m RF -f 434.9e3 > /dev/null 2>&1"; + char footer_str[] = "\' > t.txt && echo \'KU2Y>CQ:hi hi ' >> t.txt && gen_packets -o telem.wav t.txt -r 48000 > /dev/null 2>&1 && cat telem.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/CubeSatSim/rpitx/rpitx -i- -m RF -f 434.897e3 > /dev/null 2>&1"; // printf("%s-1>%s-1:", (uint8_t *)src_addr, (uint8_t *)dest_addr); @@ -520,7 +521,11 @@ int get_tlm(void) { pclose(file2); // printf("Response: %s\n", cmdbuffer); // fprintf(stderr, "Response\n"); - printf("End of get_tlm and rpitx =========================================================\n"); + + sleep(2); +} + +printf("End of get_tlm and rpitx =========================================================\n"); return; } From 7c21ce36dc2430d7823376de3f6acdfe35040939 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 17:30:17 -0400 Subject: [PATCH 11/60] Update main.c --- afsk/main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index ae063a17..3d413730 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -422,7 +422,10 @@ int upper_digit(int number) { int get_tlm(void) { +sleep(2); + for (int j = 0; j < 3; j++); +{ int tlm[7][5]; memset(tlm, 0, sizeof tlm); @@ -523,7 +526,7 @@ for (int j = 0; j < 3; j++); // fprintf(stderr, "Response\n"); sleep(2); -} + } printf("End of get_tlm and rpitx =========================================================\n"); From a0f6f3a8c285ed7b48c90900a01196fe9a7dd1eb Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 17:33:09 -0400 Subject: [PATCH 12/60] fixed AFSK looping --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 3d413730..40499114 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -424,7 +424,7 @@ int get_tlm(void) { sleep(2); -for (int j = 0; j < 3; j++); +for (int j = 0; j < 3; j++) { int tlm[7][5]; memset(tlm, 0, sizeof tlm); From 3d32dc0a67c3db1f0615e15c9d6e4602aa7214de Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 17:39:30 -0400 Subject: [PATCH 13/60] fixed delays around AFSK mode --- afsk/main.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 40499114..f9a4d0e5 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -372,9 +372,14 @@ int main(int argc, char *argv[]) { #endif if (mode == AFSK) - get_tlm(); + { + sleep(10); + get_tlm(); + } else // FSK or BPSK + { get_tlm_fox(); + } #ifdef DEBUG_LOGGING fprintf(stderr,"INFO: Getting ready to send\n"); @@ -422,8 +427,6 @@ int upper_digit(int number) { int get_tlm(void) { -sleep(2); - for (int j = 0; j < 3; j++) { int tlm[7][5]; @@ -525,7 +528,8 @@ for (int j = 0; j < 3; j++) // printf("Response: %s\n", cmdbuffer); // fprintf(stderr, "Response\n"); - sleep(2); + if (j != 2) // Don't sleep if the last packet - go straight to next mode + sleep(3); } printf("End of get_tlm and rpitx =========================================================\n"); From e568f2a925dc7d239b0c0ba2bdacc79c28759eed Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 17:47:09 -0400 Subject: [PATCH 14/60] added killall before AFSK --- afsk/main.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index f9a4d0e5..99f8c12f 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -373,7 +373,6 @@ int main(int argc, char *argv[]) { if (mode == AFSK) { - sleep(10); get_tlm(); } else // FSK or BPSK @@ -427,6 +426,18 @@ int upper_digit(int number) { int get_tlm(void) { + sleep(10); + FILE* transmit; + if (rpitxStatus != mode) { // change rpitx mode + rpitxStatus = mode; + printf("Killing all\n"); + transmit = popen("sudo killall -9 rpitx > /dev/null 2>&1", "r"); + transmit = popen("sudo killall -9 sendiq > /dev/null 2>&1", "r"); + transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); + socket_open = 0; + + sleep(3); + for (int j = 0; j < 3; j++) { int tlm[7][5]; From e26535aca3b2421e72909170f7a46de5c4d3fc3a Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 18:00:15 -0400 Subject: [PATCH 15/60] Update main.c --- afsk/main.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 99f8c12f..fee83fc5 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -428,8 +428,6 @@ int get_tlm(void) { sleep(10); FILE* transmit; - if (rpitxStatus != mode) { // change rpitx mode - rpitxStatus = mode; printf("Killing all\n"); transmit = popen("sudo killall -9 rpitx > /dev/null 2>&1", "r"); transmit = popen("sudo killall -9 sendiq > /dev/null 2>&1", "r"); From 926185ac80f49a3f8033e6cce50c975c89566a0f Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 18:04:05 -0400 Subject: [PATCH 16/60] Update main.c --- afsk/main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index fee83fc5..34459f8c 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -430,11 +430,13 @@ int get_tlm(void) { FILE* transmit; printf("Killing all\n"); transmit = popen("sudo killall -9 rpitx > /dev/null 2>&1", "r"); + sleep(1); transmit = popen("sudo killall -9 sendiq > /dev/null 2>&1", "r"); - transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); + sleep(1); + transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; - sleep(3); + sleep(1); for (int j = 0; j < 3; j++) { From e933ac731552c5d094726120eda97a807b65bcb7 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 12 Oct 2019 18:07:23 -0400 Subject: [PATCH 17/60] defaults to FSK, added afsk command line setting --- afsk/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 34459f8c..6f503fbc 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -256,13 +256,14 @@ char dest_addr[5] = "CQ"; int main(int argc, char *argv[]) { - mode = BPSK; + mode = FSK; if (argc > 1) { // strcpy(src_addr, argv[1]); if (*argv[1] == 'b') mode = BPSK; - + else if (*argv[1] == 'a') + mode = AFSK; if (argc > 2) { // printf("String is %s %s\n", *argv[2], argv[2]); loop = atoi(argv[2]); From d7ee690066d390dd2f3c2f2b72cb6949a9671a67 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 08:55:32 -0400 Subject: [PATCH 18/60] starting with FSK --- afsk/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/afsk/main.c b/afsk/main.c index 6f503fbc..bc2a2c0f 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -267,6 +267,7 @@ int main(int argc, char *argv[]) { if (argc > 2) { // printf("String is %s %s\n", *argv[2], argv[2]); loop = atoi(argv[2]); + mode = AFSK; } printf("Looping %d times \n", loop); } From 73c7c9d85dc50432c9bd17cb099bbaa9771970f6 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 09:05:33 -0400 Subject: [PATCH 19/60] added c parameter for cycle through modes, number parameter is now framCnt, recommended to be 3 --- afsk/main.c | 55 +++++++++++++++-------------------------------------- 1 file changed, 15 insertions(+), 40 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index bc2a2c0f..97251562 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -79,39 +79,10 @@ int lower_digit(int number); int socket_open = 0; int sock = 0; int loop = -1; + short int buffer[2336400]; // max size for 10 frames count of BPSK #define S_RATE (48000) // (44100) -//#define BUF_SIZE (S_RATE*10) /* 2 second buffer */ -/* -// BPSK Settings -#define BIT_RATE 1200 // 200 for DUV -#define FSK 0 // 1 for DUV -#define RS_FRAMES 3 // 3 frames for BPSK, 1 for DUV -#define PAYLOADS 6 // 1 for DUV -#define DATA_LEN 78 // 56 for DUV -#define RS_FRAME_LEN 159 // 64 for DUV -#define SYNC_BITS 31 // 10 for DUV -#define SYNC_WORD 0b1000111110011010010000101011101 // 0b0011111010 for DUV -#define HEADER_LEN 8 // 6 for DUV -#define PARITY_LEN 32 -#define FRAME_CNT 3 //33 // Add 3 frames to the count - -// FSK Settings -#define BIT_RATE 200 -#define FSK 1 -#define RS_FRAMES 1 -#define PAYLOADS 1 -#define RS_FRAME_LEN 64 -#define HEADER_LEN 6 -#define DATA_LEN 58 -#define SYNC_BITS 10 -#define SYNC_WORD 0b0011111010 -#define PARITY_LEN 32 -#define FRAME_CNT 3 // 2 //14 // 3 33 // Add 3 frames to the count - -#define SAMPLES (S_RATE / BIT_RATE) -*/ #define AFSK 0 #define FSK 1 @@ -142,7 +113,8 @@ long int uptime; char call[5]; int bitRate, mode, bufLen, rsFrames, payloads, rsFrameLen, dataLen, headerLen, syncBits, syncWord, parityLen, samples, frameCnt; - +int cycle = FALSE; + struct SensorConfig { int fd; uint16_t config; @@ -264,9 +236,15 @@ int main(int argc, char *argv[]) { mode = BPSK; else if (*argv[1] == 'a') mode = AFSK; + else if (*argv[1] == 'c') + { + cycle = TRUE; + mode = AFSK; + } + else if ( if (argc > 2) { // printf("String is %s %s\n", *argv[2], argv[2]); - loop = atoi(argv[2]); + frameCnt = atoi(argv[2]); mode = AFSK; } printf("Looping %d times \n", loop); @@ -322,13 +300,10 @@ int main(int argc, char *argv[]) { // AX25_PREAMBLE_LEN, // AX25_POSTAMBLE_LEN); - /* Infinite loop */ - // for (;;) while (loop-- != 0) { - printf("Mode before: %d \n", mode); - mode = (++mode) % 3; - printf("Mode after: %d \n", mode); + if (cycle) + mode = (++mode) % 3; if (mode == FSK) { bitRate = 200; @@ -340,7 +315,7 @@ int main(int argc, char *argv[]) { syncBits = 10; syncWord = 0b0011111010; parityLen = 32; - frameCnt = 3; //6; // 4; // ; +// frameCnt = loop; 3; //6; // 4; // ; Now set by command linke amplitude = 32767/3; samples = S_RATE/bitRate; bufLen = (frameCnt * (syncBits + 10 * (headerLen + rsFrames * (rsFrameLen + parityLen))) * samples); @@ -358,7 +333,7 @@ int main(int argc, char *argv[]) { syncBits = 31; syncWord = 0b1000111110011010010000101011101; parityLen = 32; - frameCnt = 3; // 3; +// frameCnt = 3; // 3; amplitude = 32767; samples = S_RATE/bitRate; bufLen = (frameCnt * (syncBits + 10 * (headerLen + rsFrames * (rsFrameLen + parityLen))) * samples); @@ -440,7 +415,7 @@ int get_tlm(void) { sleep(1); -for (int j = 0; j < 3; j++) +for (int j = 0; j < frameCnt; j++) { int tlm[7][5]; memset(tlm, 0, sizeof tlm); From 86c2b124f059ee0de20b558dce6f839ab7d7c3ab Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 09:07:33 -0400 Subject: [PATCH 20/60] typo --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 97251562..f5a7ed37 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -241,7 +241,7 @@ int main(int argc, char *argv[]) { cycle = TRUE; mode = AFSK; } - else if ( + if (argc > 2) { // printf("String is %s %s\n", *argv[2], argv[2]); frameCnt = atoi(argv[2]); From 91932f58d1f24813b3a8d78dbcb54027ba0d435b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 09:14:30 -0400 Subject: [PATCH 21/60] fixed cycling error --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index f5a7ed37..1c236659 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -302,7 +302,7 @@ int main(int argc, char *argv[]) { while (loop-- != 0) { - if (cycle) + if (cycle == TRUE) mode = (++mode) % 3; if (mode == FSK) { From e5dbe6754685bb641798edd247c784f69c3dd9d0 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 09:20:34 -0400 Subject: [PATCH 22/60] fixed true/false --- afsk/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 1c236659..ad761b5e 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -113,7 +113,7 @@ long int uptime; char call[5]; int bitRate, mode, bufLen, rsFrames, payloads, rsFrameLen, dataLen, headerLen, syncBits, syncWord, parityLen, samples, frameCnt; -int cycle = FALSE; +int cycle = false; struct SensorConfig { int fd; @@ -238,7 +238,7 @@ int main(int argc, char *argv[]) { mode = AFSK; else if (*argv[1] == 'c') { - cycle = TRUE; + cycle = true; mode = AFSK; } @@ -302,7 +302,7 @@ int main(int argc, char *argv[]) { while (loop-- != 0) { - if (cycle == TRUE) + if (cycle) mode = (++mode) % 3; if (mode == FSK) { From 0538c5bebf160d13f4c39e18c20c582e3d89e8e5 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 09:23:12 -0400 Subject: [PATCH 23/60] changed from cycle true false to ON/OFF --- afsk/main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index ad761b5e..0df2edc9 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -61,6 +61,8 @@ #define BUS 7 #define OFF -1 +#define ON 1 + uint32_t tx_freq_hz = 434900000 + FREQUENCY_OFFSET; uint32_t tx_channel = 0; @@ -113,7 +115,7 @@ long int uptime; char call[5]; int bitRate, mode, bufLen, rsFrames, payloads, rsFrameLen, dataLen, headerLen, syncBits, syncWord, parityLen, samples, frameCnt; -int cycle = false; +int cycle = OFF; struct SensorConfig { int fd; @@ -238,7 +240,7 @@ int main(int argc, char *argv[]) { mode = AFSK; else if (*argv[1] == 'c') { - cycle = true; + cycle = ON; mode = AFSK; } From eedd8ac1383dac13399467cfe41809a2fa9b46ab Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 09:25:10 -0400 Subject: [PATCH 24/60] cycle fix --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 0df2edc9..4104d561 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -304,7 +304,7 @@ int main(int argc, char *argv[]) { while (loop-- != 0) { - if (cycle) + if (cycle == ON) mode = (++mode) % 3; if (mode == FSK) { From 57d5b2f543bee0fd7b70fa47874199d6bf2c77d2 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 09:30:05 -0400 Subject: [PATCH 25/60] cycle debugging --- afsk/main.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 4104d561..bc662444 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -235,13 +235,24 @@ int main(int argc, char *argv[]) { if (argc > 1) { // strcpy(src_addr, argv[1]); if (*argv[1] == 'b') + { mode = BPSK; + printf("Mode BPSK\n"); + } else if (*argv[1] == 'a') + { mode = AFSK; + printf("Mode AFSK\n"); + } else if (*argv[1] == 'c') { cycle = ON; mode = AFSK; + printf("Mode cycle on\n"); + { + else + { + printf("Mode FSK\n"); } if (argc > 2) { @@ -304,9 +315,11 @@ int main(int argc, char *argv[]) { while (loop-- != 0) { - if (cycle == ON) + if (cycle == ON) + { mode = (++mode) % 3; - + printf("Cycling mode %d \n", cycle); + } if (mode == FSK) { bitRate = 200; rsFrames = 1; From 08b76359b5d8123b5102437b8af693b92016349e Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 09:31:32 -0400 Subject: [PATCH 26/60] Update main.c --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index bc662444..76cef756 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -249,7 +249,7 @@ int main(int argc, char *argv[]) { cycle = ON; mode = AFSK; printf("Mode cycle on\n"); - { + } else { printf("Mode FSK\n"); From aa899f022250c0ae20fc9e7e77d2f1ed80402576 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 09:37:31 -0400 Subject: [PATCH 27/60] fixed mode changing --- afsk/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 76cef756..1fbedf0a 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -258,7 +258,6 @@ int main(int argc, char *argv[]) { if (argc > 2) { // printf("String is %s %s\n", *argv[2], argv[2]); frameCnt = atoi(argv[2]); - mode = AFSK; } printf("Looping %d times \n", loop); } @@ -338,7 +337,7 @@ int main(int argc, char *argv[]) { printf("\n FSK Mode, %d bits per frame, %d bits per second, %d seconds per frame\n\n", bufLen/(samples * frameCnt), bitRate, bufLen/(samples * frameCnt * bitRate)); } - else { + else if (mode == BPSK) { bitRate = 1200; rsFrames = 3; payloads = 6; From 0fbf5aff3fb62b5d7d83d1493cbad0cbf8952e41 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 10:14:04 -0400 Subject: [PATCH 28/60] always kill processes after frameCnt --- afsk/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 1fbedf0a..e06164ba 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -882,7 +882,8 @@ int get_tlm_fox() { char cmdbuffer[1000]; FILE* transmit; - if (rpitxStatus != mode) { // change rpitx mode +// if (rpitxStatus != mode) + { // change rpitx mode rpitxStatus = mode; printf("Changing rpitx mode!\n"); // transmit = popen("ps -ef | grep rpitx | grep -v grep | awk '{print $2}' | sudo xargs kill -9 > /dev/null 2>&1", "r"); From 9ee6b0a516ba5a461fe9e9be8617a25d4f7d3aae Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 10:24:46 -0400 Subject: [PATCH 29/60] Update demo.sh --- demo.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/demo.sh b/demo.sh index dfc79fc4..492028dc 100755 --- a/demo.sh +++ b/demo.sh @@ -1,8 +1,6 @@ #!/bin/bash -echo -e "\nDemo of CubeSatSim sends FSK and BPSK telemetry alternately at 434.9 MHz continuously\n\n" - -exit +echo -e "\nDemo of CubeSatSim sends FSK, BPSK, and AFSK telemetry alternately at 434.9 MHz continuously\n\n" sudo killall -9 rpitx sudo killall -9 sendiq @@ -24,4 +22,12 @@ while true; do sudo killall -9 rpitx sudo killall -9 sendiq sudo fuser -k 8080/tcp + sleep 1; + + echo -e "\n Changing mode ********************************************************************************\n\n" + + timeout 22 /home/pi/CubeSatSim/radioafsk afsk 3 + sudo killall -9 rpitx + sudo killall -9 sendiq + sudo fuser -k 8080/tcp done From 2908150f317b20e4ec3584ce1d4db0186ff90eb3 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 10:47:41 -0400 Subject: [PATCH 30/60] changed back to do nothing exit --- demo.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/demo.sh b/demo.sh index 492028dc..60f2ce60 100755 --- a/demo.sh +++ b/demo.sh @@ -2,6 +2,8 @@ echo -e "\nDemo of CubeSatSim sends FSK, BPSK, and AFSK telemetry alternately at 434.9 MHz continuously\n\n" +exit + sudo killall -9 rpitx sudo killall -9 sendiq sudo fuser -k 8080/tcp From 05fa436f609ef072df0276b4dae64b82e3c31a7f Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 10:52:26 -0400 Subject: [PATCH 31/60] Just FSK and BPSK cycle --- afsk/main.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index e06164ba..a4be8c3b 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -86,9 +86,10 @@ short int buffer[2336400]; // max size for 10 frames count of BPSK #define S_RATE (48000) // (44100) -#define AFSK 0 -#define FSK 1 -#define BPSK 2 + +#define FSK 0 +#define BPSK 1 +#define AFSK 2 int rpitxStatus = -1; @@ -316,7 +317,7 @@ int main(int argc, char *argv[]) { { if (cycle == ON) { - mode = (++mode) % 3; + mode = (++mode) % 2; //; printf("Cycling mode %d \n", cycle); } if (mode == FSK) { From 9a399017d3b23c092d8c59de6825713bcb69b426 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 10:57:19 -0400 Subject: [PATCH 32/60] cycle starting with FSK --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index a4be8c3b..aaed2bca 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -248,7 +248,7 @@ int main(int argc, char *argv[]) { else if (*argv[1] == 'c') { cycle = ON; - mode = AFSK; + mode = BPSK; printf("Mode cycle on\n"); } else From a52973ea582fba06c832b078acea9acd3f27926d Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 13:43:30 -0400 Subject: [PATCH 33/60] no 2x on send test --- afsk/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index aaed2bca..4588b139 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -958,7 +958,8 @@ int get_tlm_fox() { digitalWrite (0, LOW); printf("Sending %d buffer bytes over socket!\n", ctr); // int sock_ret = send(sock, buffer, buffSize, 0); - int sock_ret = send(sock, buffer, ctr * 2 + 1, 0); +// int sock_ret = send(sock, buffer, ctr * 2 + 1, 0); + int sock_ret = send(sock, buffer, ctr, 0); printf("Result of socket send: %d \n", sock_ret); if (sock_ret == -1) { printf("Error: %s \n", strerror(errno)); From 5fc7dd9199617e67a649440bae3955b082467a7b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 13:48:56 -0400 Subject: [PATCH 34/60] changed back --- afsk/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 4588b139..aaed2bca 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -958,8 +958,7 @@ int get_tlm_fox() { digitalWrite (0, LOW); printf("Sending %d buffer bytes over socket!\n", ctr); // int sock_ret = send(sock, buffer, buffSize, 0); -// int sock_ret = send(sock, buffer, ctr * 2 + 1, 0); - int sock_ret = send(sock, buffer, ctr, 0); + int sock_ret = send(sock, buffer, ctr * 2 + 1, 0); printf("Result of socket send: %d \n", sock_ret); if (sock_ret == -1) { printf("Error: %s \n", strerror(errno)); From c0801cedc8718fb6a868d341b646cf7330957d15 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 14:00:43 -0400 Subject: [PATCH 35/60] changed callsign, made cycle alternate each time running --- afsk/main.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index aaed2bca..bd23de46 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -276,10 +276,13 @@ int main(int argc, char *argv[]) { { printf("Creating config file."); config_file = fopen("sim.cfg","w"); - fprintf(config_file, "%s %d", "KU2Y", 100); + fprintf(config_file, "%s %d", "W3ZM", 100); fclose(config_file); config_file = fopen("sim.cfg","r"); } + + if (cycle == ON) + mode = (reset_count) % 3; // alternate between the three modes char* cfg_buf[100]; fscanf(config_file, "%s %d", call, &reset_count); @@ -315,11 +318,12 @@ int main(int argc, char *argv[]) { while (loop-- != 0) { - if (cycle == ON) +/* if (cycle == ON) { mode = (++mode) % 2; //; printf("Cycling mode %d \n", cycle); } +*/ if (mode == FSK) { bitRate = 200; rsFrames = 1; @@ -500,8 +504,8 @@ for (int j = 0; j < frameCnt; j++) } #endif - char header_str2[] = "echo 'KU2Y>CQ:hi hi "; - char footer_str[] = "\' > t.txt && echo \'KU2Y>CQ:hi hi ' >> t.txt && gen_packets -o telem.wav t.txt -r 48000 > /dev/null 2>&1 && cat telem.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/CubeSatSim/rpitx/rpitx -i- -m RF -f 434.897e3 > /dev/null 2>&1"; + char header_str2[] = "echo 'W3ZM>CQ:hi hi "; + char footer_str[] = "\' > t.txt && echo \'W3ZM>CQ:hi hi ' >> t.txt && gen_packets -o telem.wav t.txt -r 48000 > /dev/null 2>&1 && cat telem.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/CubeSatSim/rpitx/rpitx -i- -m RF -f 434.897e3 > /dev/null 2>&1"; // printf("%s-1>%s-1:", (uint8_t *)src_addr, (uint8_t *)dest_addr); From ee9feab8e2f5e5043aa7b5827e1b2362fb4cd28f Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 14:06:05 -0400 Subject: [PATCH 36/60] position of cycle mode change --- afsk/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index bd23de46..06878ccb 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -281,9 +281,6 @@ int main(int argc, char *argv[]) { config_file = fopen("sim.cfg","r"); } - if (cycle == ON) - mode = (reset_count) % 3; // alternate between the three modes - char* cfg_buf[100]; fscanf(config_file, "%s %d", call, &reset_count); fclose(config_file); @@ -291,6 +288,9 @@ int main(int argc, char *argv[]) { reset_count = (reset_count + 1) % 0xffff; + if (cycle == ON) + mode = (reset_count) % 3; // alternate between the three modes + config_file = fopen("sim.cfg","w"); fprintf(config_file, "%s %d", call, reset_count); fclose(config_file); From 9ffb00acc7de21eaadc3823e2ac233c2b0e87390 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 14:12:53 -0400 Subject: [PATCH 37/60] fixed timing of AFSK --- afsk/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 06878ccb..bb96f242 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -422,7 +422,7 @@ int upper_digit(int number) { int get_tlm(void) { - sleep(10); +// sleep(10); FILE* transmit; printf("Killing all\n"); transmit = popen("sudo killall -9 rpitx > /dev/null 2>&1", "r"); @@ -432,7 +432,7 @@ int get_tlm(void) { transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; - sleep(1); +// sleep(1); for (int j = 0; j < frameCnt; j++) { @@ -535,8 +535,8 @@ for (int j = 0; j < frameCnt; j++) // printf("Response: %s\n", cmdbuffer); // fprintf(stderr, "Response\n"); - if (j != 2) // Don't sleep if the last packet - go straight to next mode - sleep(3); +// if (j != 2) // Don't sleep if the last packet - go straight to next mode +// sleep(3); } printf("End of get_tlm and rpitx =========================================================\n"); From 35f02cba70202826621080573275f840ca9c0425 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 14:13:55 -0400 Subject: [PATCH 38/60] using new cycle mode --- demo.sh | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/demo.sh b/demo.sh index 60f2ce60..d64f3db7 100755 --- a/demo.sh +++ b/demo.sh @@ -2,8 +2,6 @@ echo -e "\nDemo of CubeSatSim sends FSK, BPSK, and AFSK telemetry alternately at 434.9 MHz continuously\n\n" -exit - sudo killall -9 rpitx sudo killall -9 sendiq sudo fuser -k 8080/tcp @@ -12,24 +10,8 @@ while true; do sleep 1; echo -e "\n Changing mode ********************************************************************************\n\n" - timeout 28.5 /home/pi/CubeSatSim/radioafsk fsk 3 + timeout 28.5 /home/pi/CubeSatSim/radioafsk c 3 sudo killall -9 rpitx sudo killall -9 sendiq sudo fuser -k 8080/tcp - - sleep 1; - echo -e "\n Changing mode ********************************************************************************\n\n" - - timeout 22 /home/pi/CubeSatSim/radioafsk bpsk 3 - sudo killall -9 rpitx - sudo killall -9 sendiq - sudo fuser -k 8080/tcp - sleep 1; - - echo -e "\n Changing mode ********************************************************************************\n\n" - - timeout 22 /home/pi/CubeSatSim/radioafsk afsk 3 - sudo killall -9 rpitx - sudo killall -9 sendiq - sudo fuser -k 8080/tcp done From fc7401c0a750e49fb8f2af1fc0d1c52815f28cdc Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 14:30:05 -0400 Subject: [PATCH 39/60] 21 instead of 28.5 secs --- demo.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo.sh b/demo.sh index d64f3db7..01d3a7c8 100755 --- a/demo.sh +++ b/demo.sh @@ -10,7 +10,7 @@ while true; do sleep 1; echo -e "\n Changing mode ********************************************************************************\n\n" - timeout 28.5 /home/pi/CubeSatSim/radioafsk c 3 + timeout 21 /home/pi/CubeSatSim/radioafsk c 3 sudo killall -9 rpitx sudo killall -9 sendiq sudo fuser -k 8080/tcp From f335e388dc9a6656fed95497327ede87823ffd5a Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 14:34:24 -0400 Subject: [PATCH 40/60] fixed temp and extra delays in AFSK --- afsk/main.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index bb96f242..933bc1e1 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -431,8 +431,7 @@ int get_tlm(void) { sleep(1); transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; - -// sleep(1); + sleep(1); for (int j = 0; j < frameCnt; j++) { @@ -462,7 +461,8 @@ for (int j = 0; j < frameCnt; j++) tlm[3][A] = abs((int)((reading[BAT].voltage * 10.0) - 65.5) % 100); tlm[3][B] = (int)(reading[BUS].voltage * 10.0) % 100; // 5V supply to Pi - + +/* if (tempSensor.fd != OFF) { int tempValue = wiringPiI2CReadReg16(tempSensor.fd, 0); uint8_t upper = (uint8_t) (tempValue >> 8); @@ -475,7 +475,7 @@ for (int j = 0; j < frameCnt; j++) tlm[4][A] = (int)((95.8 - temp)/1.48 + 0.5) % 100; } - +*/ FILE *cpuTempSensor = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); if (cpuTempSensor) { double cpuTemp; @@ -535,8 +535,8 @@ for (int j = 0; j < frameCnt; j++) // printf("Response: %s\n", cmdbuffer); // fprintf(stderr, "Response\n"); -// if (j != 2) // Don't sleep if the last packet - go straight to next mode -// sleep(3); + if (j != 2) // Don't sleep if the last packet - go straight to next mode + sleep(3); } printf("End of get_tlm and rpitx =========================================================\n"); From bcf8c743d5d2fda4f5c5408f8f290ec34dc73125 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 14:58:11 -0400 Subject: [PATCH 41/60] changed to 25 secs --- demo.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo.sh b/demo.sh index 01d3a7c8..2810ee4f 100755 --- a/demo.sh +++ b/demo.sh @@ -10,7 +10,7 @@ while true; do sleep 1; echo -e "\n Changing mode ********************************************************************************\n\n" - timeout 21 /home/pi/CubeSatSim/radioafsk c 3 + timeout 25 /home/pi/CubeSatSim/radioafsk c 3 sudo killall -9 rpitx sudo killall -9 sendiq sudo fuser -k 8080/tcp From f2c6f9643d6de301bc2e69bad69dde41f46289f5 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 15:03:41 -0400 Subject: [PATCH 42/60] added more delay --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 933bc1e1..55a137fc 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -431,7 +431,7 @@ int get_tlm(void) { sleep(1); transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; - sleep(1); + sleep(3); for (int j = 0; j < frameCnt; j++) { From 8d57f47c624178ee50847589e88833c9a737f690 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sun, 13 Oct 2019 17:50:06 -0400 Subject: [PATCH 43/60] added telem value set --- afsk/main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 55a137fc..4b839caf 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -7,7 +7,7 @@ * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or + * the Free Software Foundation, either version 3 of the License, or/ * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -691,6 +691,10 @@ int get_tlm_fox() { batt_c_v = reading[BAT].voltage * 100; battCurr = reading[BAT].current * 10; + + batt_a_v = 0, batt_b_v = 0, batt_c_v = 8.95 * 100, battCurr = 48.6 * 10; + posXv = 296, negXv = 45, posYv = 220, negYv = 68, + posZv = 280, negZv = 78; encodeA(b, 0 + head_offset, batt_a_v); encodeB(b, 1 + head_offset, batt_b_v); From 98bd2b57750358099d95f1116be405c335a4e033 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 14 Oct 2019 08:31:11 -0400 Subject: [PATCH 44/60] Working FSK telem --- afsk/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 4b839caf..05184ab2 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -692,9 +692,11 @@ int get_tlm_fox() { batt_c_v = reading[BAT].voltage * 100; battCurr = reading[BAT].current * 10; - batt_a_v = 0, batt_b_v = 0, batt_c_v = 8.95 * 100, battCurr = 48.6 * 10; + /* + batt_a_v = 0, batt_b_v = 0, batt_c_v = 8.95 * 100, battCurr = 48.6 * 10; posXv = 296, negXv = 45, posYv = 220, negYv = 68, posZv = 280, negZv = 78; +*/ encodeA(b, 0 + head_offset, batt_a_v); encodeB(b, 1 + head_offset, batt_b_v); From d1ef96296b047f4ca3d24fb17bc2a0659b10cf68 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 14 Oct 2019 09:21:52 -0400 Subject: [PATCH 45/60] auto demo off, fox-demo.sh to be used --- demo.sh | 2 ++ fox-demo.sh | 29 ++++++++++++++--------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/demo.sh b/demo.sh index 2810ee4f..d3fd2a2b 100755 --- a/demo.sh +++ b/demo.sh @@ -2,6 +2,8 @@ echo -e "\nDemo of CubeSatSim sends FSK, BPSK, and AFSK telemetry alternately at 434.9 MHz continuously\n\n" +exit + sudo killall -9 rpitx sudo killall -9 sendiq sudo fuser -k 8080/tcp diff --git a/fox-demo.sh b/fox-demo.sh index e9c504b7..2810ee4f 100755 --- a/fox-demo.sh +++ b/fox-demo.sh @@ -1,18 +1,17 @@ -(while true; do +#!/bin/bash -# ps -ef | grep rpitx | grep -v grep | awk '{print $2}' | sudo xargs kill -# ps -ef | grep sendiq | grep -v grep | awk '{print $2}' | sudo xargs kill -# sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/CubeSatSim/rpitx/rpitx -i- -m RF -f 434.9e3& -# /home/pi/CubeSatSim/radioafsk f 3 +echo -e "\nDemo of CubeSatSim sends FSK, BPSK, and AFSK telemetry alternately at 434.9 MHz continuously\n\n" - /home/pi/CubeSatSim/fox-fsk.sh $1 - -# ps -ef | grep rpitx | grep -v grep | awk '{print $2}' | sudo xargs kill -# ps -ef | grep sendiq | grep -v grep | awk '{print $2}' | sudo xargs kill -# sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/CubeSatSim/rpitx/sendiq -i /dev/stdin -s 96000 -f 434.9e6 -t float 2>&1& -# /home/pi/CubeSatSim/radioafsk b 3 - - /home/pi/CubeSatSim/fox-bpsk.sh $1 - -done) +sudo killall -9 rpitx +sudo killall -9 sendiq +sudo fuser -k 8080/tcp +while true; do + sleep 1; + echo -e "\n Changing mode ********************************************************************************\n\n" + + timeout 25 /home/pi/CubeSatSim/radioafsk c 3 + sudo killall -9 rpitx + sudo killall -9 sendiq + sudo fuser -k 8080/tcp +done From 972ae858299a03bf019e0c5b5b8fec8484d196e3 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 09:33:16 -0400 Subject: [PATCH 46/60] fixed order of telem, removed 10x scaling --- afsk/main.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 05184ab2..d5966dc8 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -682,15 +682,15 @@ int get_tlm_fox() { if (mode == BPSK) h[6] = 99; - posXv = reading[PLUS_X].current * 10; - posYv = reading[PLUS_Y].current * 10; - posZv = reading[PLUS_Z].current * 10; - negXv = reading[MINUS_X].current * 10; - negYv = reading[MINUS_Y].current * 10; - negZv = reading[MINUS_Z].current * 10; + posXv = reading[PLUS_X].current; + posYv = reading[PLUS_Y].current; + posZv = reading[PLUS_Z].current; + negXv = reading[MINUS_X].current; + negYv = reading[MINUS_Y].current; + negZv = reading[MINUS_Z].current; - batt_c_v = reading[BAT].voltage * 100; - battCurr = reading[BAT].current * 10; + batt_c_v = reading[BAT].voltage * 10; + battCurr = reading[BAT].current; /* batt_a_v = 0, batt_b_v = 0, batt_c_v = 8.95 * 100, battCurr = 48.6 * 10; @@ -703,10 +703,10 @@ int get_tlm_fox() { encodeA(b, 3 + head_offset, batt_c_v); encodeA(b, 9 + head_offset, battCurr); encodeA(b, 12 + head_offset,posXv); - encodeB(b, 13 + head_offset,posYv); - encodeA(b, 15 + head_offset,posZv); - encodeB(b, 16 + head_offset,negXv); - encodeA(b, 18 + head_offset,negYv); + encodeB(b, 13 + head_offset,negXv); + encodeA(b, 15 + head_offset,posYv); + encodeB(b, 16 + head_offset,negYv); + encodeA(b, 18 + head_offset,posZv); encodeB(b, 19 + head_offset,negZv); /* batt_c_v += 10; From 26a515d926da7dc08682b278ae42f53c452197d4 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 16:13:04 -0400 Subject: [PATCH 47/60] added firstTime detection to write frame of zeros, blue LED off during sleep(3); --- afsk/main.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index d5966dc8..5de9d57e 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -81,6 +81,7 @@ int lower_digit(int number); int socket_open = 0; int sock = 0; int loop = -1; +int firstTime = ON; short int buffer[2336400]; // max size for 10 frames count of BPSK @@ -265,6 +266,8 @@ int main(int argc, char *argv[]) { wiringPiSetup (); pinMode (0, OUTPUT); + pinMode (3, OUTPUT); + digitalWrite (0, HIGH); //setSpiChannel(SPI_CHANNEL); @@ -431,8 +434,10 @@ int get_tlm(void) { sleep(1); transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; +digitalWrite (0, HIGH); sleep(3); - +digitalWrite (0, LOW); + for (int j = 0; j < frameCnt; j++) { int tlm[7][5]; @@ -536,7 +541,10 @@ for (int j = 0; j < frameCnt; j++) // fprintf(stderr, "Response\n"); if (j != 2) // Don't sleep if the last packet - go straight to next mode - sleep(3); + { + sleep(3); + } + digitalWrite (0, HIGH); } printf("End of get_tlm and rpitx =========================================================\n"); @@ -651,10 +659,8 @@ int get_tlm_fox() { #endif IHUcpuTemp = (int)((cpuTemp * 10.0) + 0.5); - encodeA(b, 39 + head_offset, IHUcpuTemp); - } - sleep(3); - + } + memset(rs_frame,0,sizeof(rs_frame)); memset(parities,0,sizeof(parities)); @@ -697,7 +703,9 @@ int get_tlm_fox() { posXv = 296, negXv = 45, posYv = 220, negYv = 68, posZv = 280, negZv = 78; */ - + +if (firstTime != ON) +{ encodeA(b, 0 + head_offset, batt_a_v); encodeB(b, 1 + head_offset, batt_b_v); encodeA(b, 3 + head_offset, batt_c_v); @@ -707,7 +715,12 @@ int get_tlm_fox() { encodeA(b, 15 + head_offset,posYv); encodeB(b, 16 + head_offset,negYv); encodeA(b, 18 + head_offset,posZv); - encodeB(b, 19 + head_offset,negZv); + encodeB(b, 19 + head_offset,negZv); + encodeA(b, 39 + head_offset, IHUcpuTemp); + digitalWrite (0, HIGH); + sleep(3); + digitalWrite (0, HIGH); +} /* batt_c_v += 10; battCurr -= 10; @@ -965,7 +978,7 @@ int get_tlm_fox() { if (!error) { - digitalWrite (0, LOW); +// digitalWrite (0, LOW); printf("Sending %d buffer bytes over socket!\n", ctr); // int sock_ret = send(sock, buffer, buffSize, 0); int sock_ret = send(sock, buffer, ctr * 2 + 1, 0); @@ -976,7 +989,8 @@ int get_tlm_fox() { //rpitxStatus = -1; } } - digitalWrite (0, HIGH); +// digitalWrite (0, HIGH); + firstTime = 0; return 0; } From 2194619af7182661edd2363b1735b005b8d384bb Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 16:28:57 -0400 Subject: [PATCH 48/60] fixed blue LED --- afsk/main.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 5de9d57e..ee79229c 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -269,7 +269,8 @@ int main(int argc, char *argv[]) { pinMode (3, OUTPUT); digitalWrite (0, HIGH); - + digitalWrite (3, HIGH); + //setSpiChannel(SPI_CHANNEL); //setSpiSpeed(SPI_SPEED); //initializeSpi(); @@ -434,9 +435,9 @@ int get_tlm(void) { sleep(1); transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; -digitalWrite (0, HIGH); +digitalWrite (3, HIGH); sleep(3); -digitalWrite (0, LOW); +digitalWrite (3, LOW); for (int j = 0; j < frameCnt; j++) { @@ -544,7 +545,7 @@ for (int j = 0; j < frameCnt; j++) { sleep(3); } - digitalWrite (0, HIGH); + digitalWrite (3, HIGH); } printf("End of get_tlm and rpitx =========================================================\n"); @@ -717,9 +718,9 @@ if (firstTime != ON) encodeA(b, 18 + head_offset,posZv); encodeB(b, 19 + head_offset,negZv); encodeA(b, 39 + head_offset, IHUcpuTemp); - digitalWrite (0, HIGH); + digitalWrite (3, HIGH); sleep(3); - digitalWrite (0, HIGH); + digitalWrite (3, HIGH); } /* batt_c_v += 10; From 6bbda34af4a31f1c59ceb1570c7819b6f847914f Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 16:32:37 -0400 Subject: [PATCH 49/60] LED test --- afsk/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index ee79229c..1dd3dfe9 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -269,7 +269,7 @@ int main(int argc, char *argv[]) { pinMode (3, OUTPUT); digitalWrite (0, HIGH); - digitalWrite (3, HIGH); + digitalWrite (3, LOW); //setSpiChannel(SPI_CHANNEL); //setSpiSpeed(SPI_SPEED); From 6be96fe44b1514635a480237c5c9f9260b08e03b Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 16:34:53 -0400 Subject: [PATCH 50/60] fixed LED --- afsk/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index 1dd3dfe9..1fe5017f 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -418,6 +418,7 @@ int upper_digit(int number) { int digit = 0; if (number < 100) + digit = (int)(number/10); else fprintf(stderr,"ERROR: Not a digit in upper_digit!\n"); @@ -720,7 +721,7 @@ if (firstTime != ON) encodeA(b, 39 + head_offset, IHUcpuTemp); digitalWrite (3, HIGH); sleep(3); - digitalWrite (3, HIGH); + digitalWrite (3, LOW); } /* batt_c_v += 10; From 45851ed13ffe2cf6b0c24f0a3addf8d60121c3e8 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 16:41:39 -0400 Subject: [PATCH 51/60] only do digitalWrite when not transmitting --- afsk/main.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 1fe5017f..8da4e6bf 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -269,7 +269,7 @@ int main(int argc, char *argv[]) { pinMode (3, OUTPUT); digitalWrite (0, HIGH); - digitalWrite (3, LOW); + digitalWrite (3, HIGH); //setSpiChannel(SPI_CHANNEL); //setSpiSpeed(SPI_SPEED); @@ -546,7 +546,7 @@ for (int j = 0; j < frameCnt; j++) { sleep(3); } - digitalWrite (3, HIGH); + // digitalWrite (3, HIGH); } printf("End of get_tlm and rpitx =========================================================\n"); @@ -719,9 +719,9 @@ if (firstTime != ON) encodeA(b, 18 + head_offset,posZv); encodeB(b, 19 + head_offset,negZv); encodeA(b, 39 + head_offset, IHUcpuTemp); - digitalWrite (3, HIGH); +// digitalWrite (3, HIGH); sleep(3); - digitalWrite (3, LOW); +// digitalWrite (3, LOW); } /* batt_c_v += 10; @@ -919,12 +919,14 @@ if (firstTime != ON) // transmit = popen("ps -ef | grep sendiq | grep -v grep | awk '{print $2}' | sudo xargs kill -9 > /dev/null 2>&1", "r"); transmit = popen("sudo killall -9 sendiq > /dev/null 2>&1", "r"); // printf("2\n"); - sleep(1); + digitalWrite (3, HIGH); + sleep(1); transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; // printf("3\n"); sleep(1); + digitalWrite (3, LOW); if (mode == FSK) { transmit = popen("sudo nc -l 8080 | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/CubeSatSim/rpitx/rpitx -i- -m RF -f 434.896e3&", "r"); From ada7bc15d432bc5230560f63c8363d634e24a931 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 17:08:57 -0400 Subject: [PATCH 52/60] fixed LED on AFSK --- afsk/main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 8da4e6bf..614f9386 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -436,9 +436,9 @@ int get_tlm(void) { sleep(1); transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; -digitalWrite (3, HIGH); +//digitalWrite (3, HIGH); sleep(3); -digitalWrite (3, LOW); +//digitalWrite (3, LOW); for (int j = 0; j < frameCnt; j++) { @@ -544,9 +544,13 @@ for (int j = 0; j < frameCnt; j++) if (j != 2) // Don't sleep if the last packet - go straight to next mode { + digitalWrite (3, HIGH); sleep(3); + digitalWrite (3, LOW); + } else + { + digitalWrite(3, HIGH); } - // digitalWrite (3, HIGH); } printf("End of get_tlm and rpitx =========================================================\n"); From 7d4cf1bd71de672fb130ed2fe5dc284978f85eda Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 17:12:23 -0400 Subject: [PATCH 53/60] changed LED for AFSK --- afsk/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 614f9386..53fa64d3 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -438,7 +438,7 @@ int get_tlm(void) { socket_open = 0; //digitalWrite (3, HIGH); sleep(3); -//digitalWrite (3, LOW); +digitalWrite (3, LOW); for (int j = 0; j < frameCnt; j++) { @@ -542,7 +542,7 @@ for (int j = 0; j < frameCnt; j++) // printf("Response: %s\n", cmdbuffer); // fprintf(stderr, "Response\n"); - if (j != 2) // Don't sleep if the last packet - go straight to next mode + if (j != frameCnt) // Don't sleep if the last packet - go straight to next mode { digitalWrite (3, HIGH); sleep(3); From 32d16380a208b397e5c3710745cf96430c029da0 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 17:15:28 -0400 Subject: [PATCH 54/60] LED AFSK --- afsk/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 53fa64d3..2938ccf3 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -436,12 +436,12 @@ int get_tlm(void) { sleep(1); transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; -//digitalWrite (3, HIGH); - sleep(3); -digitalWrite (3, LOW); + + sleep(3); for (int j = 0; j < frameCnt; j++) { + digitalWrite (3, LOW); int tlm[7][5]; memset(tlm, 0, sizeof tlm); From a3ebcb97da38a9fb438ac41fddf9eeb18424e608 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 17:18:07 -0400 Subject: [PATCH 55/60] Update main.c --- afsk/main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/afsk/main.c b/afsk/main.c index 2938ccf3..e94d2200 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -555,6 +555,8 @@ for (int j = 0; j < frameCnt; j++) printf("End of get_tlm and rpitx =========================================================\n"); +digitalWrite(3, HIGH); + return; } From 8acb8306fe6029f86efa47d67fde12808de7983f Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Mon, 14 Oct 2019 17:23:14 -0400 Subject: [PATCH 56/60] reducing sleep by 2 in AFSK --- afsk/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/afsk/main.c b/afsk/main.c index e94d2200..10aca735 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -437,7 +437,8 @@ int get_tlm(void) { transmit = popen("sudo fuser -k 8080/tcp > /dev/null 2>&1", "r"); socket_open = 0; - sleep(3); +// sleep(3); + sleep(1); for (int j = 0; j < frameCnt; j++) { From d982023221029028631a85f4a1fc14662ce95a4e Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 15 Oct 2019 15:22:50 -0400 Subject: [PATCH 57/60] moved firstTime to only avoid sleep(3) not writing values --- afsk/main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/afsk/main.c b/afsk/main.c index 10aca735..260d6da1 100644 --- a/afsk/main.c +++ b/afsk/main.c @@ -713,8 +713,7 @@ int get_tlm_fox() { posZv = 280, negZv = 78; */ -if (firstTime != ON) -{ + encodeA(b, 0 + head_offset, batt_a_v); encodeB(b, 1 + head_offset, batt_b_v); encodeA(b, 3 + head_offset, batt_c_v); @@ -726,7 +725,9 @@ if (firstTime != ON) encodeA(b, 18 + head_offset,posZv); encodeB(b, 19 + head_offset,negZv); encodeA(b, 39 + head_offset, IHUcpuTemp); -// digitalWrite (3, HIGH); + +if (firstTime != ON) +{// digitalWrite (3, HIGH); sleep(3); // digitalWrite (3, LOW); } From a6458a1a8a0711375cfd3bd08311ec9077b2e8bb Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 15 Oct 2019 15:28:57 -0400 Subject: [PATCH 58/60] Create README.md --- spacecraft/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 spacecraft/README.md diff --git a/spacecraft/README.md b/spacecraft/README.md new file mode 100644 index 00000000..d59160ce --- /dev/null +++ b/spacecraft/README.md @@ -0,0 +1,9 @@ +These files are for FoxTelem, the AMSAT software by Chris Thompson AC3CZ/G0KLA for decoding and displaying Fox-1 series CubeSat telemetry. + +To use FoxTelem with the CubeSat Simulator, you will need to download the latest version number listed in this directory. + +https://www.g0kla.com/foxtelem/downloads/test/ + +Next, download the .MASTER files in the correct version number directory and put them in the FoxTelem spacecraft folder. + +Run FoxTelem, then go under Spacecraft/Add and select the .MASTER files to add the CubeSat Simulator to FoxTelem. From 8427717b6fc4b5d689f5a4a93e5e623fd7ba4126 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 15 Oct 2019 15:30:03 -0400 Subject: [PATCH 59/60] Create CubeSat_Simulator_BPSK_fm.MASTER --- .../CubeSat_Simulator_BPSK_fm.MASTER | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 spacecraft/FoxTelem_1.09b/CubeSat_Simulator_BPSK_fm.MASTER diff --git a/spacecraft/FoxTelem_1.09b/CubeSat_Simulator_BPSK_fm.MASTER b/spacecraft/FoxTelem_1.09b/CubeSat_Simulator_BPSK_fm.MASTER new file mode 100644 index 00000000..46fad57b --- /dev/null +++ b/spacecraft/FoxTelem_1.09b/CubeSat_Simulator_BPSK_fm.MASTER @@ -0,0 +1,69 @@ +#Fox 1 Telemetry Decoder Properties +#Sat Oct 12 10:34:00 EST 2019 +user_mode=4 +foxId=99 +IHU_SN=7 +catalogNumber=0 +model=1 +mpptResistanceError=6.58 +mpptSensorOffThreshold=1600 +name=CubeSat Simulator BPSK +displayName=CubeSat Simulator BPSK +BATTERY_CURRENT_ZERO=-1.834 +hasImprovedCommandReceiver=true +EXP1=6 +EXP2=1 +EXP3=8 +EXP4=7 +description=The AMSAT CubeSat Simulator is a functional model of a 1U CubeSat, for more info see http://cubesatsim.org +numberOfFrameLayouts=5 +frameLayout0.filename=FOX1E_Type0_ALL_WOD.frame +frameLayout0.name=All WOD +frameLayout1.filename=FOX1E_Type1_HEALTH.frame +frameLayout1.name=Health +frameLayout2.filename=FOX1E_Type2_MINMAX.frame +frameLayout2.name=MinMax +frameLayout3.filename=FOX1E_Type3_REALTIME_BEACON.frame +frameLayout3.name=Realtime Beacon +frameLayout4.filename=FOX1E_Type4_WOD_BEACON.frame +frameLayout4.name=WOD Beacon +numberOfLayouts=9 +layout0.filename=FOX1A_debug.csv +layout0.name=DEBUG +layout1.filename=FOX1E_maxtelemetry.csv +layout1.name=maxtelemetry +layout2.filename=FOX1E_rttelemetry.csv +layout2.name=rttelemetry +layout3.filename=FOX1E_mintelemetry.csv +layout3.name=mintelemetry +layout4.filename=FOX1E_radtelemetry.csv +layout4.name=radtelemetry +layout5.filename=FOX1E_radtelemetry2.csv +layout5.name=radtelemetry2 +layout5.parentLayout=radtelemetry +layout6.filename=FOX1E_wodtelemetry.csv +layout6.name=wodtelemetry +layout7.filename=FOX1E_wodradtelemetry.csv +layout7.name=wodradtelemetry +layout8.filename=FOX1E_wodradtelemetry2.csv +layout8.name=wodradtelemetry2 +layout8.parentLayout=wodradtelemetry +numberOfLookupTables=3 +lookupTable0.filename=FOX1A_rssiFM.tab +lookupTable0=RSSI +lookupTable1.filename=FOX1E_ihuVBattSNx.tab +lookupTable1=IHU_VBATT +lookupTable2.filename=FOX1A_ihutempSN7.tab +lookupTable2=IHU_TEMP +maxFreqBoundkHz=434950 +measurementsFileName=measurements.csv +memsRestValueX=2129 +memsRestValueY=2131 +memsRestValueZ=2103 +minFreqBoundkHz=434850 +passMeasurementsFileName=passmeasurements.csv +telemetryDownlinkFreqkHz=434900 +track=false +useIHUVBatt=false +numberOfSources=1 +source0.name=ihu.bpsk From 2b97bcc32697c1a6373e8397c2298c35d7d2886f Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Tue, 15 Oct 2019 15:30:43 -0400 Subject: [PATCH 60/60] Create CubeSat_Simulator_FSK_fm.MASTER --- .../CubeSat_Simulator_FSK_fm.MASTER | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 spacecraft/FoxTelem_1.09b/CubeSat_Simulator_FSK_fm.MASTER diff --git a/spacecraft/FoxTelem_1.09b/CubeSat_Simulator_FSK_fm.MASTER b/spacecraft/FoxTelem_1.09b/CubeSat_Simulator_FSK_fm.MASTER new file mode 100644 index 00000000..94fa2fb0 --- /dev/null +++ b/spacecraft/FoxTelem_1.09b/CubeSat_Simulator_FSK_fm.MASTER @@ -0,0 +1,51 @@ +#Fox 1 Telemetry Decoder Properties +#Sat Oct 12 10:35:00 EST 2019 +#File named .dat should be in the logfiles directory and is loaded by FoxTelem +#File named .MASTER should not be edited and is a backup copy in the installation directory +foxId=7 +displayName=CubeSat Simulator FSK +name=CubeSat Simulator FSK +model=1 +IHU_SN=7 +catalogNumber=0 +description=The AMSAT CubeSat Simulator is a functional model of a 1U CubeSat, for more info see http://cubesatsim.org +BATTERY_CURRENT_ZERO=-1.839 +EXP1=6 +EXP2=1 +EXP3=0 +EXP4=0 +numberOfLayouts=6 +layout0.filename=FOX1A_debug.csv +layout0.name=DEBUG +layout1.filename=FOX1A_maxtelemetry.csv +layout1.name=maxtelemetry +layout2.filename=FOX1A_rttelemetryFM.csv +layout2.name=rttelemetry +layout3.filename=FOX1A_mintelemetry.csv +layout3.name=mintelemetry +layout4.filename=FOX1A_radtelemetry.csv +layout4.name=radtelemetry +layout5.filename=FOX1A_radtelemetry2.csv +layout5.name=radtelemetry2 +layout5.parentLayout=radtelemetry +lookupTable0.filename=FOX1A_rssiFM.tab +numberOfLookupTables=3 +lookupTable0=RSSI +lookupTable1.filename=FOX1A_ihuVBattSN7.tab +lookupTable1=IHU_VBATT +lookupTable2.filename=FOX1A_ihutempSN7.tab +lookupTable2=IHU_TEMP +telemetryDownlinkFreqkHz=434900 +maxFreqBoundkHz=434950 +minFreqBoundkHz=434850 +measurementsFileName=measurements.csv +memsRestValueX=2087 +memsRestValueY=2101 +memsRestValueZ=2045 +passMeasurementsFileName=passmeasurements.csv +numberOfSources=2 +source0.name=ihu.duv +source1.name=ihu.highspeed +track=true +useIHUVBatt=true +user_mode=0