From bf993386da334f712597afdc21495b377633f716 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 06:57:40 -0500 Subject: [PATCH 01/64] Update Payload_BME280_MPU6050_XS.ino changes for Arduino Mbed RP2040 board --- .../Payload_BME280_MPU6050_XS.ino | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 7b5ed4ae..8d211cc7 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -6,8 +6,11 @@ #include #include #include -#include #include +#ifndef ARDUINO_ARCH_RP2040 +#include +#endif + #define SEALEVELPRESSURE_HPA (1013.25) @@ -356,7 +359,7 @@ void blink_setup() #endif #if defined ARDUINO_ARCH_RP2040 - if (check_for_wifi()) { +/* if (check_for_wifi()) { wifi = true; led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W pinMode(LED_BUILTIN, OUTPUT); @@ -364,7 +367,9 @@ void blink_setup() } else { led_builtin_pin = 25; // manually set GPIO 25 for Pico board // pinMode(25, OUTPUT); - pinMode(led_builtin_pin, OUTPUT); +*/ + led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W + pinMode(LED_BUILTIN, OUTPUT); pinMode(18, OUTPUT); pinMode(19, OUTPUT); From 7f2488db1868c208bef9714d04bc34edb32398c8 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 07:23:03 -0500 Subject: [PATCH 02/64] Update Payload_BME280_MPU6050_XS.ino remove tx rx pin assignments --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 8d211cc7..a3db608d 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -70,9 +70,9 @@ void setup() { #ifdef ARDUINO_ARCH_RP2040 Serial1.setRX(1); - delay(100); +// delay(100); Serial1.setTX(0); - delay(100); +// delay(100); #endif Serial.begin(115200); // Serial Monitor for testing From 3bac89dd67af45ff772072537e45522ae079999c Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 07:24:14 -0500 Subject: [PATCH 03/64] Update Payload_BME280_MPU6050_XS.ino tx rx pins out --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index a3db608d..96d220fd 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -69,9 +69,9 @@ extern void payload_loop(); // sensor extension read function defined in payloa void setup() { #ifdef ARDUINO_ARCH_RP2040 - Serial1.setRX(1); +// Serial1.setRX(1); // delay(100); - Serial1.setTX(0); +// Serial1.setTX(0); // delay(100); #endif From 564b832b9073bb5398f3b3f53f382c5c91705327 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 07:26:52 -0500 Subject: [PATCH 04/64] Update Payload_BME280_MPU6050_XS.ino extra } --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 96d220fd..e7a67af7 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -370,10 +370,10 @@ void blink_setup() */ led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W pinMode(LED_BUILTIN, OUTPUT); - + wifi = true; pinMode(18, OUTPUT); pinMode(19, OUTPUT); - } +// } #endif } From f84677e043903bb729fcb9599f1a314c8ebeaae4 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 07:29:13 -0500 Subject: [PATCH 05/64] Update Payload_BME280_MPU6050_XS.ino remove more EEPROM --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index e7a67af7..f4b040e4 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -333,13 +333,17 @@ void loop() { void eeprom_word_write(int addr, int val) { +#ifndef ARDUINO_ARCH_RP2040 EEPROM.write(addr * 2, lowByte(val)); EEPROM.write(addr * 2 + 1, highByte(val)); +#endif } short eeprom_word_read(int addr) { +#ifndef ARDUINO_ARCH_RP2040 return ((EEPROM.read(addr * 2 + 1) << 8) | EEPROM.read(addr * 2)); +#endif } void blink_setup() From 2e3383c798203db9f7ed15e2328d2468eae5fa8b Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 07:31:46 -0500 Subject: [PATCH 06/64] Update Payload_BME280_MPU6050_XS.ino removed printf --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index f4b040e4..7a55684d 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -498,7 +498,7 @@ void get_gps() { } } if (newData) { - Serial.printf("GPS read new data in ms: %d\n", millis() - start); +//// Serial.printf("GPS read new data in ms: %d\n", millis() - start); // float flon = 0.0, flat = 0.0, flalt = 0.0; // unsigned long age; // starting = millis(); From c0d550f9cc626ed7d5d0b679185c2bc3cda47b43 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 08:27:14 -0500 Subject: [PATCH 07/64] Update Payload_BME280_MPU6050_XS.ino remove gps and Serial2 --- .../Payload_BME280_MPU6050_XS.ino | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 7a55684d..e4c81b20 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -447,6 +447,7 @@ int read_analog() #if defined __AVR_ATmega32U4__ sensorValue = analogRead(A3); #endif + #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) sensorValue = analogRead(PA7); #endif @@ -481,7 +482,7 @@ bool check_for_wifi() { } void get_gps() { - +#ifndef ARDUINO_ARCH_RP2040 bool newData = false; unsigned long start = millis(); @@ -498,7 +499,7 @@ void get_gps() { } } if (newData) { -//// Serial.printf("GPS read new data in ms: %d\n", millis() - start); + Serial.printf("GPS read new data in ms: %d\n", millis() - start); // float flon = 0.0, flat = 0.0, flalt = 0.0; // unsigned long age; // starting = millis(); @@ -524,5 +525,5 @@ void get_gps() { } else // Serial.printf("GPS read no new data: %d\n", millis() - start); ; - +#endif } From 088e199b40bd45afbfc0d39e88e820a07f40d822 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 08:29:35 -0500 Subject: [PATCH 08/64] Update Payload_BME280_MPU6050_XS.ino add delay(1000) --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index e4c81b20..21a77cfe 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -326,8 +326,8 @@ void loop() { Serial.println(digitalRead(15)); #endif -// delay(1000); not needed due to gps 1 second polling delay - get_gps(); + delay(1000); not needed due to gps 1 second polling delay +// get_gps(); } From e367983a592b6639914bb29dc247751f3e465403 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 08:30:38 -0500 Subject: [PATCH 09/64] Update Payload_BME280_MPU6050_XS.ino typo missing // --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 21a77cfe..211a0539 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -326,7 +326,7 @@ void loop() { Serial.println(digitalRead(15)); #endif - delay(1000); not needed due to gps 1 second polling delay + delay(1000); // not needed due to gps 1 second polling delay // get_gps(); } From d255db92c499402f6b3fe59659dbb3f03eeec100 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 10:08:11 -0500 Subject: [PATCH 10/64] Update Payload_BME280_MPU6050_XS.ino add SoftwareSerial for Serial2 --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 211a0539..36242fdf 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -7,7 +7,9 @@ #include #include #include -#ifndef ARDUINO_ARCH_RP2040 +#ifdef ARDUINO_ARCH_RP2040 +#include +#else #include #endif From ff81f69de16065c93c4433f52f6803c89c184ced Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 10:17:15 -0500 Subject: [PATCH 11/64] Update Payload_BME280_MPU6050_XS.ino try UART instead --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 36242fdf..f4cb4ed8 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -8,7 +8,7 @@ #include #include #ifdef ARDUINO_ARCH_RP2040 -#include +UART Serial2(8, 9, 0, 0); #else #include #endif From ad3c0ae1ff3243b55790aa0514190f1fec5298b7 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 10:18:22 -0500 Subject: [PATCH 12/64] Update Payload_BME280_MPU6050_XS.ino gps code back in --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index f4cb4ed8..00e41436 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -484,7 +484,7 @@ bool check_for_wifi() { } void get_gps() { -#ifndef ARDUINO_ARCH_RP2040 +//#ifndef ARDUINO_ARCH_RP2040 bool newData = false; unsigned long start = millis(); @@ -527,5 +527,5 @@ void get_gps() { } else // Serial.printf("GPS read no new data: %d\n", millis() - start); ; -#endif +//#endif } From 34ee4b3c7b99c3321c176d04815490ecb7ca0e6d Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 10:21:21 -0500 Subject: [PATCH 13/64] Update Payload_BME280_MPU6050_XS.ino fix printf --- .../Payload_BME280_MPU6050_XS.ino | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 00e41436..a22adc63 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -471,8 +471,14 @@ bool check_for_wifi() { pinMode(29, INPUT); const float conversion_factor = 3.3f / (1 << 12); uint16_t result = analogRead(29); +/* // Serial.printf("ADC3 value: 0x%03x, voltage: %f V\n", result, result * conversion_factor); - + Serial.print("ADC3 value and voltage: "); + Serial.print(result); + Serial.print(" "); + Serial.println(result * conversion_factor); +*/ + if (result < 0x10) { Serial.println("\nPico W detected!\n"); return(true); @@ -501,7 +507,9 @@ void get_gps() { } } if (newData) { - Serial.printf("GPS read new data in ms: %d\n", millis() - start); + Serial.print("GPS read new data in ms: "); + Serial.println(millis() - start); + // float flon = 0.0, flat = 0.0, flalt = 0.0; // unsigned long age; // starting = millis(); From b8dee066e90a1a16ed3f728f2335494c3cfbcaa6 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 10:34:28 -0500 Subject: [PATCH 14/64] Update Payload_BME280_MPU6050_XS.ino --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index a22adc63..7d44b03f 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -328,8 +328,8 @@ void loop() { Serial.println(digitalRead(15)); #endif - delay(1000); // not needed due to gps 1 second polling delay -// get_gps(); +// delay(1000); // not needed due to gps 1 second polling delay + get_gps(); } From 93181451e5688c5dd7c6b6bfa25839a3deb31a7d Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 7 Jan 2024 10:44:05 -0500 Subject: [PATCH 16/64] Update Payload_BME280_MPU6050_XS_Extended.ino harmonized with non extended after changes --- .../Payload_BME280_MPU6050_XS_Extended.ino | 56 +++++++++++++------ 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino index 7825f2d1..7d44b03f 100644 --- a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino +++ b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino @@ -6,8 +6,13 @@ #include #include #include -#include #include +#ifdef ARDUINO_ARCH_RP2040 +UART Serial2(8, 9, 0, 0); +#else +#include +#endif + #define SEALEVELPRESSURE_HPA (1013.25) @@ -60,16 +65,16 @@ bool show_gps = true; // set to false to not see all messages float flon = 0.0, flat = 0.0, flalt = 0.0; void get_gps(); -extern void payload_setup(); // sensor extension setup function defined in payload_extension.cpp -extern void payload_loop(); // sensor extension read function defined in payload_extension.cpp +extern void payload_setup(); // sensor extension setup function defined in payload_extension.cpp +extern void payload_loop(); // sensor extension read function defined in payload_extension.cpp void setup() { #ifdef ARDUINO_ARCH_RP2040 - Serial1.setRX(1); - delay(100); - Serial1.setTX(0); - delay(100); +// Serial1.setRX(1); +// delay(100); +// Serial1.setTX(0); +// delay(100); #endif Serial.begin(115200); // Serial Monitor for testing @@ -101,7 +106,7 @@ void setup() { #endif - blink_setup(); // sensor extension setup function defined in payload_extension.cpp + blink_setup(); blink(500); delay(250); @@ -158,7 +163,7 @@ void setup() { Serial.println(((float)eeprom_word_read(3)) / 100.0, DEC); #endif } - payload_setup(); + payload_setup(); // sensor extension setup function defined in payload_extension.cpp } void loop() { @@ -323,20 +328,24 @@ void loop() { Serial.println(digitalRead(15)); #endif -// delay(1000); not needed due to gps 1 second polling delay +// delay(1000); // not needed due to gps 1 second polling delay get_gps(); } void eeprom_word_write(int addr, int val) { +#ifndef ARDUINO_ARCH_RP2040 EEPROM.write(addr * 2, lowByte(val)); EEPROM.write(addr * 2 + 1, highByte(val)); +#endif } short eeprom_word_read(int addr) { +#ifndef ARDUINO_ARCH_RP2040 return ((EEPROM.read(addr * 2 + 1) << 8) | EEPROM.read(addr * 2)); +#endif } void blink_setup() @@ -356,7 +365,7 @@ void blink_setup() #endif #if defined ARDUINO_ARCH_RP2040 - if (check_for_wifi()) { +/* if (check_for_wifi()) { wifi = true; led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W pinMode(LED_BUILTIN, OUTPUT); @@ -364,11 +373,13 @@ void blink_setup() } else { led_builtin_pin = 25; // manually set GPIO 25 for Pico board // pinMode(25, OUTPUT); - pinMode(led_builtin_pin, OUTPUT); - +*/ + led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W + pinMode(LED_BUILTIN, OUTPUT); + wifi = true; pinMode(18, OUTPUT); pinMode(19, OUTPUT); - } +// } #endif } @@ -438,6 +449,7 @@ int read_analog() #if defined __AVR_ATmega32U4__ sensorValue = analogRead(A3); #endif + #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) sensorValue = analogRead(PA7); #endif @@ -459,8 +471,14 @@ bool check_for_wifi() { pinMode(29, INPUT); const float conversion_factor = 3.3f / (1 << 12); uint16_t result = analogRead(29); +/* // Serial.printf("ADC3 value: 0x%03x, voltage: %f V\n", result, result * conversion_factor); - + Serial.print("ADC3 value and voltage: "); + Serial.print(result); + Serial.print(" "); + Serial.println(result * conversion_factor); +*/ + if (result < 0x10) { Serial.println("\nPico W detected!\n"); return(true); @@ -472,7 +490,7 @@ bool check_for_wifi() { } void get_gps() { - +//#ifndef ARDUINO_ARCH_RP2040 bool newData = false; unsigned long start = millis(); @@ -489,7 +507,9 @@ void get_gps() { } } if (newData) { - Serial.printf("GPS read new data in ms: %d\n", millis() - start); + Serial.print("GPS read new data in ms: "); + Serial.println(millis() - start); + // float flon = 0.0, flat = 0.0, flalt = 0.0; // unsigned long age; // starting = millis(); @@ -515,5 +535,5 @@ void get_gps() { } else // Serial.printf("GPS read no new data: %d\n", millis() - start); ; - +//#endif } From 4e263ecc2887404c97a66b864ae4cfbd2180f86c Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jan 2024 03:22:43 -0500 Subject: [PATCH 17/64] Update Payload_BME280_MPU6050_XS_Extended.ino cleanup - removing extra code --- .../Payload_BME280_MPU6050_XS_Extended.ino | 64 ++++++++----------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino index 7d44b03f..ad2929ff 100644 --- a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino +++ b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino @@ -1,6 +1,6 @@ // code for Pico or Pro Micro or STM32 on the CubeSat Simulator STEM Payload board // works wih CubeSatSim software v1.3.2 or later -// extra sensors can be added in payload_extension.cpp +// extra sensors can be added in payload_extension.cpp file #include #include @@ -8,7 +8,7 @@ #include #include #ifdef ARDUINO_ARCH_RP2040 -UART Serial2(8, 9, 0, 0); +//UART Serial2(8, 9, 0, 0); #else #include #endif @@ -31,10 +31,10 @@ void ee_prom_word_write(int addr, int val); short ee_prom_word_read(int addr); int first_time = true; int first_read = true; -bool check_for_wifi(); -bool wifi = false; -int led_builtin_pin; -#define PICO_W // define if Pico W board. Otherwise, compilation fail for Pico or runtime fail if compile as Pico W +//bool check_for_wifi(); +//bool wifi = false; +//int led_builtin_pin; +//#define PICO_W // define if Pico W board. Otherwise, compilation fail for Pico or runtime fail if compile as Pico W #if defined ARDUINO_ARCH_RP2040 float T2 = 26.3; // Temperature data point 1 @@ -69,18 +69,10 @@ extern void payload_setup(); // sensor extension setup function defined in payl extern void payload_loop(); // sensor extension read function defined in payload_extension.cpp void setup() { - -#ifdef ARDUINO_ARCH_RP2040 -// Serial1.setRX(1); -// delay(100); -// Serial1.setTX(0); -// delay(100); -#endif Serial.begin(115200); // Serial Monitor for testing - Serial1.begin(115200); // Pi UART faster spd -// Serial1.begin(9600); // Pi UART faster spd + Serial1.begin(115200); // for communication with Pi Zero delay(10000); @@ -90,11 +82,10 @@ void setup() { Serial.println("This code is for the Raspberry Pi Pico hardware."); Serial.println("Starting Serial2 for optional GPS on JP12"); -// Serial2.begin(9600); // serial from - some modules need 115200 +// Serial2.begin(9600); // serial from - some modules need 115200 + UART Serial2(8, 9, 0, 0); + Serial2.begin(9600); // serial from GPS or other serial sensor. Some GPS need 115200 - // pinMode(0, INPUT); - // pinMode(1, INPUT); - // set all Pico GPIO connected pins to input for (int i = 6; i < 22; i++) { pinMode(i, INPUT); @@ -144,13 +135,10 @@ void setup() { } else { -#ifdef ARDUINO_ARCH_RP2040 Serial.println("Calculating gyro offsets\n"); - mpu6050.calcGyroOffsets(true); -#endif -#ifndef ARDUINO_ARCH_RP2040 - Serial.println("Calculating gyro offsets and storing in EEPROM\n"); - mpu6050.calcGyroOffsets(true); + mpu6050.calcGyroOffsets(true); +#ifndef ARDUINO_ARCH_RP2040 + Serial.println("Storing gyro offsets in EEPROM\n"); eeprom_word_write(0, 0xA07); eeprom_word_write(1, (int)(mpu6050.getGyroXoffset() * 100.0) + 0.5); @@ -374,11 +362,11 @@ void blink_setup() led_builtin_pin = 25; // manually set GPIO 25 for Pico board // pinMode(25, OUTPUT); */ - led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W +// led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W pinMode(LED_BUILTIN, OUTPUT); - wifi = true; - pinMode(18, OUTPUT); - pinMode(19, OUTPUT); +// wifi = true; + pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 + pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 // } #endif @@ -396,10 +384,10 @@ void blink(int length) #endif #if defined ARDUINO_ARCH_RP2040 - if (wifi) +// if (wifi) digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON - else - digitalWrite(led_builtin_pin, HIGH); // set the built-in LED ON +// else +// digitalWrite(led_builtin_pin, HIGH); // set the built-in LED ON #endif #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) @@ -412,10 +400,10 @@ void blink(int length) #endif #if defined ARDUINO_ARCH_RP2040 - if (wifi) +// if (wifi) digitalWrite(LED_BUILTIN, LOW); // set the built-in LED OFF - else - digitalWrite(led_builtin_pin, LOW); // set the built-in LED OFF +// else +// digitalWrite(led_builtin_pin, LOW); // set the built-in LED OFF // delay(length); // wait for a lenth of time #endif @@ -458,12 +446,12 @@ int read_analog() #endif return(sensorValue); } - +/* bool check_for_wifi() { #ifndef PICO_W - Serial.println("WiFi disabled in software"); + Serial.println("WiFi disafbled in software"); return(false); // skip check if not Pico W board or compilation will fail #endif @@ -488,7 +476,7 @@ bool check_for_wifi() { return(false); } } - +*/ void get_gps() { //#ifndef ARDUINO_ARCH_RP2040 bool newData = false; From d15d68fe8e9b36e9153b76867e906bc0e3055180 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jan 2024 03:29:48 -0500 Subject: [PATCH 18/64] Update Payload_BME280_MPU6050_XS_Extended.ino missing /* --- .../Payload_BME280_MPU6050_XS_Extended.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino index ad2929ff..becf69b7 100644 --- a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino +++ b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino @@ -466,7 +466,7 @@ bool check_for_wifi() { Serial.print(" "); Serial.println(result * conversion_factor); */ - +/* if (result < 0x10) { Serial.println("\nPico W detected!\n"); return(true); From 9cff78e13febe065d04f50c0af125934fb4f5567 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jan 2024 03:32:23 -0500 Subject: [PATCH 19/64] Update Payload_BME280_MPU6050_XS_Extended.ino UART changes --- .../Payload_BME280_MPU6050_XS_Extended.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino index becf69b7..cb884760 100644 --- a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino +++ b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino @@ -8,7 +8,7 @@ #include #include #ifdef ARDUINO_ARCH_RP2040 -//UART Serial2(8, 9, 0, 0); +UART Serial2(8, 9, 0, 0); #else #include #endif @@ -83,7 +83,7 @@ void setup() { Serial.println("Starting Serial2 for optional GPS on JP12"); // Serial2.begin(9600); // serial from - some modules need 115200 - UART Serial2(8, 9, 0, 0); +// UART Serial2(8, 9, 0, 0); Serial2.begin(9600); // serial from GPS or other serial sensor. Some GPS need 115200 // set all Pico GPIO connected pins to input From 6b0ed941f2e25543091425bc506954ee966d3a40 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jan 2024 03:39:19 -0500 Subject: [PATCH 20/64] Update Payload_BME280_MPU6050_XS_Extended.ino cleanup --- .../Payload_BME280_MPU6050_XS_Extended.ino | 67 +------------------ 1 file changed, 3 insertions(+), 64 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino index cb884760..c43e8fbb 100644 --- a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino +++ b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino @@ -13,7 +13,6 @@ UART Serial2(8, 9, 0, 0); #include #endif - #define SEALEVELPRESSURE_HPA (1013.25) Adafruit_BME280 bme; @@ -31,10 +30,6 @@ void ee_prom_word_write(int addr, int val); short ee_prom_word_read(int addr); int first_time = true; int first_read = true; -//bool check_for_wifi(); -//bool wifi = false; -//int led_builtin_pin; -//#define PICO_W // define if Pico W board. Otherwise, compilation fail for Pico or runtime fail if compile as Pico W #if defined ARDUINO_ARCH_RP2040 float T2 = 26.3; // Temperature data point 1 @@ -83,8 +78,7 @@ void setup() { Serial.println("Starting Serial2 for optional GPS on JP12"); // Serial2.begin(9600); // serial from - some modules need 115200 -// UART Serial2(8, 9, 0, 0); - Serial2.begin(9600); // serial from GPS or other serial sensor. Some GPS need 115200 + Serial2.begin(9600); // serial from GPS or other serial sensor. Some GPS need 115200 // set all Pico GPIO connected pins to input for (int i = 6; i < 22; i++) { @@ -317,8 +311,7 @@ void loop() { #endif // delay(1000); // not needed due to gps 1 second polling delay - get_gps(); - + get_gps(); } void eeprom_word_write(int addr, int val) @@ -353,23 +346,10 @@ void blink_setup() #endif #if defined ARDUINO_ARCH_RP2040 -/* if (check_for_wifi()) { - wifi = true; - led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W - pinMode(LED_BUILTIN, OUTPUT); -// configure_wifi(); - } else { - led_builtin_pin = 25; // manually set GPIO 25 for Pico board -// pinMode(25, OUTPUT); -*/ -// led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W pinMode(LED_BUILTIN, OUTPUT); -// wifi = true; pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 -// } #endif - } void blink(int length) @@ -384,10 +364,7 @@ void blink(int length) #endif #if defined ARDUINO_ARCH_RP2040 -// if (wifi) digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON -// else -// digitalWrite(led_builtin_pin, HIGH); // set the built-in LED ON #endif #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) @@ -400,14 +377,8 @@ void blink(int length) #endif #if defined ARDUINO_ARCH_RP2040 -// if (wifi) digitalWrite(LED_BUILTIN, LOW); // set the built-in LED OFF -// else -// digitalWrite(led_builtin_pin, LOW); // set the built-in LED OFF - -// delay(length); // wait for a lenth of time #endif - } void led_set(int ledPin, bool state) @@ -446,39 +417,8 @@ int read_analog() #endif return(sensorValue); } -/* -bool check_for_wifi() { - -#ifndef PICO_W - - Serial.println("WiFi disafbled in software"); - return(false); // skip check if not Pico W board or compilation will fail - -#endif - - pinMode(29, INPUT); - const float conversion_factor = 3.3f / (1 << 12); - uint16_t result = analogRead(29); -/* -// Serial.printf("ADC3 value: 0x%03x, voltage: %f V\n", result, result * conversion_factor); - Serial.print("ADC3 value and voltage: "); - Serial.print(result); - Serial.print(" "); - Serial.println(result * conversion_factor); -*/ -/* - if (result < 0x10) { - Serial.println("\nPico W detected!\n"); - return(true); - } - else { - Serial.println("\nPico detected!\n"); - return(false); - } -} -*/ + void get_gps() { -//#ifndef ARDUINO_ARCH_RP2040 bool newData = false; unsigned long start = millis(); @@ -523,5 +463,4 @@ void get_gps() { } else // Serial.printf("GPS read no new data: %d\n", millis() - start); ; -//#endif } From c0a074acd186c9fc0b8d5237acbccf3aac625a6d Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jan 2024 03:46:04 -0500 Subject: [PATCH 21/64] Update Payload_BME280_MPU6050_XS.ino cleanup to harmonize with Extended --- .../Payload_BME280_MPU6050_XS.ino | 93 ++----------------- 1 file changed, 10 insertions(+), 83 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 7d44b03f..c43e8fbb 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -1,6 +1,6 @@ // code for Pico or Pro Micro or STM32 on the CubeSat Simulator STEM Payload board // works wih CubeSatSim software v1.3.2 or later -// extra sensors can be added in payload_extension.cpp +// extra sensors can be added in payload_extension.cpp file #include #include @@ -13,7 +13,6 @@ UART Serial2(8, 9, 0, 0); #include #endif - #define SEALEVELPRESSURE_HPA (1013.25) Adafruit_BME280 bme; @@ -31,10 +30,6 @@ void ee_prom_word_write(int addr, int val); short ee_prom_word_read(int addr); int first_time = true; int first_read = true; -bool check_for_wifi(); -bool wifi = false; -int led_builtin_pin; -#define PICO_W // define if Pico W board. Otherwise, compilation fail for Pico or runtime fail if compile as Pico W #if defined ARDUINO_ARCH_RP2040 float T2 = 26.3; // Temperature data point 1 @@ -69,18 +64,10 @@ extern void payload_setup(); // sensor extension setup function defined in payl extern void payload_loop(); // sensor extension read function defined in payload_extension.cpp void setup() { - -#ifdef ARDUINO_ARCH_RP2040 -// Serial1.setRX(1); -// delay(100); -// Serial1.setTX(0); -// delay(100); -#endif Serial.begin(115200); // Serial Monitor for testing - Serial1.begin(115200); // Pi UART faster spd -// Serial1.begin(9600); // Pi UART faster spd + Serial1.begin(115200); // for communication with Pi Zero delay(10000); @@ -90,11 +77,9 @@ void setup() { Serial.println("This code is for the Raspberry Pi Pico hardware."); Serial.println("Starting Serial2 for optional GPS on JP12"); -// Serial2.begin(9600); // serial from - some modules need 115200 +// Serial2.begin(9600); // serial from - some modules need 115200 + Serial2.begin(9600); // serial from GPS or other serial sensor. Some GPS need 115200 - // pinMode(0, INPUT); - // pinMode(1, INPUT); - // set all Pico GPIO connected pins to input for (int i = 6; i < 22; i++) { pinMode(i, INPUT); @@ -144,13 +129,10 @@ void setup() { } else { -#ifdef ARDUINO_ARCH_RP2040 Serial.println("Calculating gyro offsets\n"); - mpu6050.calcGyroOffsets(true); -#endif -#ifndef ARDUINO_ARCH_RP2040 - Serial.println("Calculating gyro offsets and storing in EEPROM\n"); - mpu6050.calcGyroOffsets(true); + mpu6050.calcGyroOffsets(true); +#ifndef ARDUINO_ARCH_RP2040 + Serial.println("Storing gyro offsets in EEPROM\n"); eeprom_word_write(0, 0xA07); eeprom_word_write(1, (int)(mpu6050.getGyroXoffset() * 100.0) + 0.5); @@ -329,8 +311,7 @@ void loop() { #endif // delay(1000); // not needed due to gps 1 second polling delay - get_gps(); - + get_gps(); } void eeprom_word_write(int addr, int val) @@ -365,23 +346,10 @@ void blink_setup() #endif #if defined ARDUINO_ARCH_RP2040 -/* if (check_for_wifi()) { - wifi = true; - led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W - pinMode(LED_BUILTIN, OUTPUT); -// configure_wifi(); - } else { - led_builtin_pin = 25; // manually set GPIO 25 for Pico board -// pinMode(25, OUTPUT); -*/ - led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W pinMode(LED_BUILTIN, OUTPUT); - wifi = true; - pinMode(18, OUTPUT); - pinMode(19, OUTPUT); -// } + pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 + pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 #endif - } void blink(int length) @@ -396,10 +364,7 @@ void blink(int length) #endif #if defined ARDUINO_ARCH_RP2040 - if (wifi) digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON - else - digitalWrite(led_builtin_pin, HIGH); // set the built-in LED ON #endif #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) @@ -412,14 +377,8 @@ void blink(int length) #endif #if defined ARDUINO_ARCH_RP2040 - if (wifi) digitalWrite(LED_BUILTIN, LOW); // set the built-in LED OFF - else - digitalWrite(led_builtin_pin, LOW); // set the built-in LED OFF - -// delay(length); // wait for a lenth of time #endif - } void led_set(int ledPin, bool state) @@ -459,38 +418,7 @@ int read_analog() return(sensorValue); } -bool check_for_wifi() { - -#ifndef PICO_W - - Serial.println("WiFi disabled in software"); - return(false); // skip check if not Pico W board or compilation will fail - -#endif - - pinMode(29, INPUT); - const float conversion_factor = 3.3f / (1 << 12); - uint16_t result = analogRead(29); -/* -// Serial.printf("ADC3 value: 0x%03x, voltage: %f V\n", result, result * conversion_factor); - Serial.print("ADC3 value and voltage: "); - Serial.print(result); - Serial.print(" "); - Serial.println(result * conversion_factor); -*/ - - if (result < 0x10) { - Serial.println("\nPico W detected!\n"); - return(true); - } - else { - Serial.println("\nPico detected!\n"); - return(false); - } -} - void get_gps() { -//#ifndef ARDUINO_ARCH_RP2040 bool newData = false; unsigned long start = millis(); @@ -535,5 +463,4 @@ void get_gps() { } else // Serial.printf("GPS read no new data: %d\n", millis() - start); ; -//#endif } From 9fcb2724f7bd41b069da0a7c88992ebcc9944852 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jan 2024 03:48:15 -0500 Subject: [PATCH 22/64] Update payload_extension.cpp added example code --- .../Payload_BME280_MPU6050_XS/payload_extension.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/payload_extension.cpp b/stempayload/Payload_BME280_MPU6050_XS/payload_extension.cpp index 61725282..5b8dd2ec 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/payload_extension.cpp +++ b/stempayload/Payload_BME280_MPU6050_XS/payload_extension.cpp @@ -9,7 +9,7 @@ // put your setup code here void payload_setup() { - Serial.println("Starting new sensor!"); +// Serial.println("Starting new sensor!"); } @@ -17,4 +17,9 @@ void payload_setup() { // Very Important: only use print, not println!! void payload_loop() { +/* + Serial1.print(" NEW 0.0"); // send sensor data over serial to Pi Zero + Serial.print(" NEW 0.0"); // send sensor data over serial monitor for testing +*/ + } From 1cf1577e9c283e7c16854c6812aa7b374d68bf00 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jan 2024 03:55:11 -0500 Subject: [PATCH 23/64] Update config copy telem.txt to .bk when logs cleared --- config | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config b/config index 9b3a372d..c85ecd12 100755 --- a/config +++ b/config @@ -424,6 +424,8 @@ elif [ "$1" = "-C" ]; then sudo systemctl stop cubesatsim sudo systemctl stop rpitx + sudo mv /home/pi/CubeSatSim/telem.txt /home/pi/CubeSatSim/telem.txt.bk + sudo journalctl --rotate sudo journalctl --vacuum-time=1s From 7084d8c5bdd87dd3779bbe0544ecf6723e8e0016 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jan 2024 03:59:43 -0500 Subject: [PATCH 24/64] Update config force move of telem.txt --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index c85ecd12..f33cdae6 100755 --- a/config +++ b/config @@ -424,7 +424,7 @@ elif [ "$1" = "-C" ]; then sudo systemctl stop cubesatsim sudo systemctl stop rpitx - sudo mv /home/pi/CubeSatSim/telem.txt /home/pi/CubeSatSim/telem.txt.bk + sudo mv -f /home/pi/CubeSatSim/telem.txt /home/pi/CubeSatSim/telem.txt.bk sudo journalctl --rotate sudo journalctl --vacuum-time=1s From 308ce06fa5d4a979817f2a45873f8e81d9024380 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Mon, 8 Jan 2024 13:00:37 -0500 Subject: [PATCH 25/64] Update main.c added link to FoxTelem info --- main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index dba9612c..c4f04a44 100644 --- a/main.c +++ b/main.c @@ -1299,8 +1299,10 @@ void get_tlm(void) { return; } -void get_tlm_fox() { +// generates telemetry which is decoded by AMSAT's FoxTelem: https://www.amsat.org/foxtelem-software-for-windows-mac-linux/ +// for more info about how we use FoxTelem see https://www.g0kla.com/foxtelem/amsat_telemetry_designers_handbook.pdf +void get_tlm_fox() { int i; long int sync = syncWord; From cff5c34d8a9ab7eca061206e64c462857826459f Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 12 Jan 2024 15:40:54 -0500 Subject: [PATCH 26/64] Update Payload_BME280_MPU6050_XS.ino don't go gps if not Pico --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index c43e8fbb..c1d9e8d9 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -419,6 +419,7 @@ int read_analog() } void get_gps() { +#ifdef ARDUINO_ARCH_RP2040 bool newData = false; unsigned long start = millis(); @@ -463,4 +464,5 @@ void get_gps() { } else // Serial.printf("GPS read no new data: %d\n", millis() - start); ; +#endif } From 0d7ff4653f4b1c3ebd5014fe4a7496648e079740 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 12 Jan 2024 15:45:31 -0500 Subject: [PATCH 27/64] Update Payload_BME280_MPU6050_XS.ino 1 second delay if not gps --- .../Payload_BME280_MPU6050_XS.ino | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index c1d9e8d9..815973ff 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -308,10 +308,12 @@ void loop() { #ifdef ARDUINO_ARCH_RP2040 Serial.print("Squelch: "); Serial.println(digitalRead(15)); + + get_gps(); +#else + delay(1000); // not needed due to gps 1 second polling delay + #endif - -// delay(1000); // not needed due to gps 1 second polling delay - get_gps(); } void eeprom_word_write(int addr, int val) From 82f4545828dfc68e5189b5ce70c3210b985a6a23 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 12 Jan 2024 15:52:50 -0500 Subject: [PATCH 28/64] Update Payload_BME280_MPU6050_XS.ino blink longer on payload --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 815973ff..80e5e0b4 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -150,7 +150,7 @@ void setup() { void loop() { - blink(50); + blink(150); if (Serial1.available() > 0) { Serial.print("Received serial data!!!\n"); From 3f52de82f87f64f04f806c90ec4303976f4cb0ab Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 13 Jan 2024 11:12:21 -0500 Subject: [PATCH 29/64] Update Payload_BME280_MPU6050_XS_Extended.ino sync with non extended --- .../Payload_BME280_MPU6050_XS_Extended.ino | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino index c43e8fbb..80e5e0b4 100644 --- a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino +++ b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino @@ -150,7 +150,7 @@ void setup() { void loop() { - blink(50); + blink(150); if (Serial1.available() > 0) { Serial.print("Received serial data!!!\n"); @@ -308,10 +308,12 @@ void loop() { #ifdef ARDUINO_ARCH_RP2040 Serial.print("Squelch: "); Serial.println(digitalRead(15)); + + get_gps(); +#else + delay(1000); // not needed due to gps 1 second polling delay + #endif - -// delay(1000); // not needed due to gps 1 second polling delay - get_gps(); } void eeprom_word_write(int addr, int val) @@ -419,6 +421,7 @@ int read_analog() } void get_gps() { +#ifdef ARDUINO_ARCH_RP2040 bool newData = false; unsigned long start = millis(); @@ -463,4 +466,5 @@ void get_gps() { } else // Serial.printf("GPS read no new data: %d\n", millis() - start); ; +#endif } From 23200f766f74fd33ee7eedb8a528fb22837f5c0d Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 14 Jan 2024 08:15:17 -0500 Subject: [PATCH 30/64] Update Payload_BME280_MPU6050_XS.ino fixed blink --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 80e5e0b4..a78fdf1b 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -368,6 +368,8 @@ void blink(int length) #if defined ARDUINO_ARCH_RP2040 digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON #endif + +delay(length); #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) digitalWrite(PC13, HIGH); // turn the LED off by making the voltage LOW From e198741d77d4534f123213cc8b30c7f46ee6e8a5 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 14 Jan 2024 08:20:49 -0500 Subject: [PATCH 31/64] Update Payload_BME280_MPU6050_XS.ino short blink --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index a78fdf1b..6c0fb799 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -150,7 +150,7 @@ void setup() { void loop() { - blink(150); + blink(50); if (Serial1.available() > 0) { Serial.print("Received serial data!!!\n"); From c6194fb82c59bdd806ab9a1f0ddccb7225fc4627 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 14 Jan 2024 08:22:17 -0500 Subject: [PATCH 32/64] Update Payload_BME280_MPU6050_XS.ino delay 1 sec at start not 10 --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 6c0fb799..07ca7c0c 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -69,7 +69,7 @@ void setup() { Serial1.begin(115200); // for communication with Pi Zero - delay(10000); + delay(1000); Serial.println("Starting!"); From 9d18c4fe8bbb12e6657c2ec6af855e63669ff1c0 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 14 Jan 2024 08:24:41 -0500 Subject: [PATCH 33/64] Update Payload_BME280_MPU6050_XS_Extended.ino sync with non extended --- .../Payload_BME280_MPU6050_XS_Extended.ino | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino index 80e5e0b4..07ca7c0c 100644 --- a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino +++ b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino @@ -69,7 +69,7 @@ void setup() { Serial1.begin(115200); // for communication with Pi Zero - delay(10000); + delay(1000); Serial.println("Starting!"); @@ -150,7 +150,7 @@ void setup() { void loop() { - blink(150); + blink(50); if (Serial1.available() > 0) { Serial.print("Received serial data!!!\n"); @@ -368,6 +368,8 @@ void blink(int length) #if defined ARDUINO_ARCH_RP2040 digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON #endif + +delay(length); #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) digitalWrite(PC13, HIGH); // turn the LED off by making the voltage LOW From ba80f3413eb293af171a340a142633a3b92b3f07 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 14 Jan 2024 15:04:04 -0500 Subject: [PATCH 34/64] Update main.c --- main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index c4f04a44..b73587d9 100644 --- a/main.c +++ b/main.c @@ -35,12 +35,12 @@ int main(int argc, char * argv[]) { fclose(file_test); fprintf(stderr, " %x ", resbuffer[0]); - fprintf(stderr, " %x ", resbuffer[1]); + fprintf(stderr, " %x \n", resbuffer[1]); if ((resbuffer[0] == '9') && (resbuffer[1] == '0')) { sleep(5); // try sleep at start to help boot voltageThreshold = 3.7; - printf("Pi Zero 2 detected"); + printf("Pi Zero 2 detected\n"); } printf("\n\nCubeSatSim v1.3.2 starting...\n\n"); @@ -369,7 +369,8 @@ int main(int argc, char * argv[]) { // try connecting to STEM Payload board using UART // /boot/config.txt and /boot/cmdline.txt must be set correctly for this to work - if (!ax5043 && !vB3 && !(mode == CW) && !(mode == SSTV)) // don't test for payload if AX5043 is present or CW or SSTV modes +// if (!ax5043 && !vB3 && !(mode == CW) && !(mode == SSTV)) // don't test for payload if AX5043 is present or CW or SSTV modes + if (!ax5043) // don't test for payload if AX5043 is present { payload = OFF; From 70e56dc42ccdd6a21c1538541975e9e3a71b9425 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 14 Jan 2024 15:09:26 -0500 Subject: [PATCH 35/64] Update main.c move telem.txt write --- main.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index b73587d9..cc8a36a7 100644 --- a/main.c +++ b/main.c @@ -920,6 +920,20 @@ int main(int argc, char * argv[]) { sleep(10); } //#endif + if (payload == ON) { + telem_file = fopen("/home/pi/CubeSatSim/telem.txt", "a"); + printf("Writing payload string\n"); + time_t timeStamp; + time(&timeStamp); // get timestamp +// printf("Timestamp: %s\n", ctime(&timeStamp)); + + char timeStampNoNl[31], bat_string[31]; + snprintf(timeStampNoNl, 30, "%.24s", ctime(&timeStamp)); + printf("TimeStamp: %s\n", timeStampNoNl); + snprintf(bat_string, 30, "BAT %4.2f %5.1f", batteryVoltage, batteryCurrent); + fprintf(telem_file, "%s %s %s\n", timeStampNoNl, bat_string, sensor_payload); // write telemetry string to telem.txt file + fclose(telem_file); + } FILE * fp = fopen("/home/pi/CubeSatSim/telem_string.txt", "w"); if (fp != NULL) { @@ -1253,7 +1267,7 @@ void get_tlm(void) { sleep(4); // was 2 } else { // APRS using rpitx - +/* if (payload == ON) { telem_file = fopen("/home/pi/CubeSatSim/telem.txt", "a"); printf("Writing payload string\n"); @@ -1268,7 +1282,7 @@ void get_tlm(void) { fprintf(telem_file, "%s %s %s\n", timeStampNoNl, bat_string, sensor_payload); // write telemetry string to telem.txt file fclose(telem_file); } - +*/ strcat(str, footer_str1); // strcat(str, call); if (battery_saver_mode == ON) From 1977a3164038711c5d41545aca6b9ae55b8814f8 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 14 Jan 2024 15:38:10 -0500 Subject: [PATCH 36/64] Update main.c moving stem payload sensor code --- main.c | 109 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 68 insertions(+), 41 deletions(-) diff --git a/main.c b/main.c index cc8a36a7..0bc7db23 100644 --- a/main.c +++ b/main.c @@ -641,7 +641,72 @@ int main(int argc, char * argv[]) { batteryCurrent = current[map[BAT]]; } + + if (payload == ON) { // moved to here + STEMBoardFailure = 0; + printf("get_payload_status: %d \n", get_payload_serial(FALSE)); // not debug + fflush(stdout); + printf("String: %s\n", buffer2); + fflush(stdout); + strcpy(sensor_payload, buffer2); + printf(" Response from STEM Payload board: %s\n", sensor_payload); + + if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) // only process if valid payload response + { + int count1; + char * token; + + const char space[2] = " "; + token = strtok(sensor_payload, space); +// printf("token: %s\n", token); + for (count1 = 0; count1 < 17; count1++) { + if (token != NULL) { + sensor[count1] = (float) atof(token); +// #ifdef DEBUG_LOGGING + printf("sensor: %f ", sensor[count1]); // print sensor data +// #endif + token = strtok(NULL, space); + } + } + printf("\n"); +// if (sensor[XS1] != 0) { + if ((sensor[XS1] > -90.0) && (sensor[XS1] < 90.0) && (sensor[XS1] != 0.0)) { + if (sensor[XS1] != latitude) { + latitude = sensor[XS1]; + printf("Latitude updated to %f \n", latitude); + newGpsTime = millis(); + } + } +// if (sensor[XS2] != 0) { + if ((sensor[XS2] > -180.0) && (sensor[XS2] < 180.0) && (sensor[XS2] != 0.0)) { + if (sensor[XS2] != longitude) { + longitude = sensor[XS2]; + printf("Longitude updated to %f \n", longitude); + newGpsTime = millis(); + } + } + } + else + ; //payload = OFF; // turn off since STEM Payload is not responding + } + if ((millis() - newGpsTime) > 60000) { + longitude += rnd_float(-0.05, 0.05) / 100.0; // was .05 + latitude += rnd_float(-0.05, 0.05) / 100.0; + printf("GPS Location with Rnd: %f, %f \n", latitude, longitude); + printf("GPS Location with Rnd: APRS %07.2f, %08.2f \n", toAprsFormat(latitude), toAprsFormat(longitude)); + newGpsTime = millis(); + } + if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) { + for (int count1 = 0; count1 < 17; count1++) { + if (sensor[count1] < sensor_min[count1]) + sensor_min[count1] = sensor[count1]; + if (sensor[count1] > sensor_max[count1]) + sensor_max[count1] = sensor[count1]; + // printf("Smin %f Smax %f \n", sensor_min[count1], sensor_max[count1]); + } + } + if (sim_mode) { // simulated telemetry double time = ((long int)millis() - time_start) / 1000.0; @@ -771,54 +836,15 @@ int main(int argc, char * argv[]) { } fclose(cpuTempSensor); } - +// move this code out of get_tlm +/* if (payload == ON) { // -55 STEMBoardFailure = 0; printf("get_payload_status: %d \n", get_payload_serial(FALSE)); // not debug fflush(stdout); printf("String: %s\n", buffer2); fflush(stdout); - strcpy(sensor_payload, buffer2); -/* - char c; - unsigned int waitTime; - int i, end, trys = 0; - sensor_payload[0] = 0; - sensor_payload[1] = 0; - while (((sensor_payload[0] != 'O') || (sensor_payload[1] != 'K')) && (trys++ < 10)) { - i = 0; -// serialPutchar(uart_fd, '?'); -// sleep(0.05); // added delay after ? -// printf("%d Querying payload with ?\n", trys); - waitTime = millis() + 500; - end = FALSE; - // int retry = FALSE; - while ((millis() < waitTime) && !end) { - int chars = (char) serialDataAvail(uart_fd); - while ((chars > 0) && !end) { -// printf("Chars: %d\ ", chars); - chars--; - c = (char) serialGetchar(uart_fd); - // printf ("%c", c); - // fflush(stdout); - if (c != '\n') { - sensor_payload[i++] = c; - } else { - end = TRUE; - } - } - } - - sensor_payload[i++] = ' '; - // sensor_payload[i++] = '\n'; - sensor_payload[i] = '\0'; - printf(" Response from STEM Payload board: %s\n", sensor_payload); - - - sleep(0.1); // added sleep between loops - } -*/ printf(" Response from STEM Payload board: %s\n", sensor_payload); if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) // only process if valid payload response @@ -876,6 +902,7 @@ int main(int argc, char * argv[]) { // printf("Smin %f Smax %f \n", sensor_min[count1], sensor_max[count1]); } } +*/ // } #ifdef DEBUG_LOGGING From a36e3cf44730b32e667e15a1b7fd177c0ba541db Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 14 Jan 2024 15:50:17 -0500 Subject: [PATCH 37/64] Update main.c move payload code again --- main.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/main.c b/main.c index 0bc7db23..65502f4b 100644 --- a/main.c +++ b/main.c @@ -650,6 +650,19 @@ int main(int argc, char * argv[]) { fflush(stdout); strcpy(sensor_payload, buffer2); printf(" Response from STEM Payload board: %s\n", sensor_payload); + + telem_file = fopen("/home/pi/CubeSatSim/telem.txt", "a"); + printf("Writing payload string\n"); + time_t timeStamp; + time(&timeStamp); // get timestamp +// printf("Timestamp: %s\n", ctime(&timeStamp)); + + char timeStampNoNl[31], bat_string[31]; + snprintf(timeStampNoNl, 30, "%.24s", ctime(&timeStamp)); + printf("TimeStamp: %s\n", timeStampNoNl); + snprintf(bat_string, 30, "BAT %4.2f %5.1f", batteryVoltage, batteryCurrent); + fprintf(telem_file, "%s %s %s\n", timeStampNoNl, bat_string, sensor_payload); // write telemetry string to telem.txt file + fclose(telem_file); if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) // only process if valid payload response { @@ -947,20 +960,6 @@ int main(int argc, char * argv[]) { sleep(10); } //#endif - if (payload == ON) { - telem_file = fopen("/home/pi/CubeSatSim/telem.txt", "a"); - printf("Writing payload string\n"); - time_t timeStamp; - time(&timeStamp); // get timestamp -// printf("Timestamp: %s\n", ctime(&timeStamp)); - - char timeStampNoNl[31], bat_string[31]; - snprintf(timeStampNoNl, 30, "%.24s", ctime(&timeStamp)); - printf("TimeStamp: %s\n", timeStampNoNl); - snprintf(bat_string, 30, "BAT %4.2f %5.1f", batteryVoltage, batteryCurrent); - fprintf(telem_file, "%s %s %s\n", timeStampNoNl, bat_string, sensor_payload); // write telemetry string to telem.txt file - fclose(telem_file); - } FILE * fp = fopen("/home/pi/CubeSatSim/telem_string.txt", "w"); if (fp != NULL) { From bf1b402ef50646c9e92c16a3c32a2d8696e00fbe Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sun, 14 Jan 2024 16:15:51 -0500 Subject: [PATCH 38/64] Update rpitx.py turn on CW transmit --- rpitx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpitx.py b/rpitx.py index 6246033f..5bd38104 100644 --- a/rpitx.py +++ b/rpitx.py @@ -523,7 +523,7 @@ if __name__ == "__main__": print("Turning off transmit") system("echo > command_tx False") sleep(5) - output(pd, 0) + output(pd, 1) # changed from 0 to 1 try: f = open("/home/pi/CubeSatSim/cwready") From ca1433ced9139ca9d2c869aa62e6eb8f632e61cf Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 19 Jan 2024 16:34:52 -0500 Subject: [PATCH 39/64] Update Payload_BME280_MPU6050_XS.ino change to MBED macro --- .../Payload_BME280_MPU6050_XS.ino | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 07ca7c0c..11a5f7a2 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -7,7 +7,7 @@ #include #include #include -#ifdef ARDUINO_ARCH_RP2040 +#ifdef ARDUINO_ARCH_MBED_RP2040 UART Serial2(8, 9, 0, 0); #else #include @@ -31,7 +31,7 @@ short ee_prom_word_read(int addr); int first_time = true; int first_read = true; -#if defined ARDUINO_ARCH_RP2040 +#if defined ARDUINO_ARCH_MBED_RP2040 float T2 = 26.3; // Temperature data point 1 float R2 = 167; // Reading data point 1 float T1 = 2; // Temperature data point 2 @@ -289,7 +289,7 @@ void loop() { // Serial.println(result); // Serial.println("OK"); // Serial.println(counter++); -#ifndef ARDUINO_ARCH_RP2040 +#ifndef ARDUINO_ARCH_MBED_RP2040 if (result == 'R') { Serial1.println("OK"); delay(100); @@ -318,7 +318,7 @@ void loop() { void eeprom_word_write(int addr, int val) { -#ifndef ARDUINO_ARCH_RP2040 +#ifndef ARDUINO_ARCH_MBED_RP2040 EEPROM.write(addr * 2, lowByte(val)); EEPROM.write(addr * 2 + 1, highByte(val)); #endif @@ -326,7 +326,7 @@ void eeprom_word_write(int addr, int val) short eeprom_word_read(int addr) { -#ifndef ARDUINO_ARCH_RP2040 +#ifndef ARDUINO_ARCH_MBED_RP2040 return ((EEPROM.read(addr * 2 + 1) << 8) | EEPROM.read(addr * 2)); #endif } @@ -347,7 +347,7 @@ void blink_setup() pinMode(blueLED,OUTPUT); #endif -#if defined ARDUINO_ARCH_RP2040 +#if defined ARDUINO_ARCH_MBED_RP2040 pinMode(LED_BUILTIN, OUTPUT); pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 @@ -365,7 +365,7 @@ void blink(int length) TXLED0; //TX LED is not tied to a normally controlled pin so a macro is needed, turn LED OFF #endif -#if defined ARDUINO_ARCH_RP2040 +#if defined ARDUINO_ARCH_MBED_RP2040 digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON #endif @@ -380,7 +380,7 @@ delay(length); TXLED0; //TX LED macro to turn LED ON #endif -#if defined ARDUINO_ARCH_RP2040 +#if defined ARDUINO_ARCH_MBED_RP2040 digitalWrite(LED_BUILTIN, LOW); // set the built-in LED OFF #endif } @@ -398,7 +398,7 @@ void led_set(int ledPin, bool state) digitalWrite(ledPin, state); #endif -#ifdef ARDUINO_ARCH_RP2040 +#ifdef ARDUINO_ARCH_MBED_RP2040 if (ledPin == greenLED) digitalWrite(19, state); else if (ledPin == blueLED) @@ -416,14 +416,14 @@ int read_analog() #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) sensorValue = analogRead(PA7); #endif -#if defined ARDUINO_ARCH_RP2040 +#if defined ARDUINO_ARCH_MBED_RP2040 sensorValue = analogRead(28); #endif return(sensorValue); } void get_gps() { -#ifdef ARDUINO_ARCH_RP2040 +#ifdef ARDUINO_ARCH_MBED_RP2040 bool newData = false; unsigned long start = millis(); From 8c896e6ba948ebc6bc4bd750e48c4d98ba9aa31e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 19 Jan 2024 16:42:57 -0500 Subject: [PATCH 40/64] Update Payload_BME280_MPU6050_XS.ino last of macro changes --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 11a5f7a2..7fd7e6b2 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -73,7 +73,7 @@ void setup() { Serial.println("Starting!"); -#ifdef ARDUINO_ARCH_RP2040 +#ifdef ARDUINO_ARCH_MBED_RP2040 Serial.println("This code is for the Raspberry Pi Pico hardware."); Serial.println("Starting Serial2 for optional GPS on JP12"); @@ -131,7 +131,7 @@ void setup() { { Serial.println("Calculating gyro offsets\n"); mpu6050.calcGyroOffsets(true); -#ifndef ARDUINO_ARCH_RP2040 +#ifndef ARDUINO_ARCH_MBED_RP2040 Serial.println("Storing gyro offsets in EEPROM\n"); eeprom_word_write(0, 0xA07); @@ -305,7 +305,7 @@ void loop() { #endif } -#ifdef ARDUINO_ARCH_RP2040 +#ifdef ARDUINO_ARCH_MBED_RP2040 Serial.print("Squelch: "); Serial.println(digitalRead(15)); From b1f25755c8161961813b87c19018325714f9b471 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 19 Jan 2024 16:45:34 -0500 Subject: [PATCH 41/64] Update Payload_BME280_MPU6050_XS.ino only do TinyGPS if Pico --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 7fd7e6b2..8f3cd5b6 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -6,8 +6,8 @@ #include #include #include -#include #ifdef ARDUINO_ARCH_MBED_RP2040 +#include UART Serial2(8, 9, 0, 0); #else #include From a2c6f6f25ad06482810c8bc410d328077029c230 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 19 Jan 2024 16:53:35 -0500 Subject: [PATCH 42/64] Update Payload_BME280_MPU6050_XS.ino add get gps print --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 1 + 1 file changed, 1 insertion(+) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 8f3cd5b6..51b6680b 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -424,6 +424,7 @@ int read_analog() void get_gps() { #ifdef ARDUINO_ARCH_MBED_RP2040 + Serial.println("Getting GPS data"); bool newData = false; unsigned long start = millis(); From f19e7d7fd365ac99fa71c7fde99736feab7a5ad8 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 19 Jan 2024 18:26:39 -0500 Subject: [PATCH 43/64] Update Payload_BME280_MPU6050_XS.ino pin set input from 6 to 10 --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 51b6680b..07dfdefa 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -81,7 +81,7 @@ void setup() { Serial2.begin(9600); // serial from GPS or other serial sensor. Some GPS need 115200 // set all Pico GPIO connected pins to input - for (int i = 6; i < 22; i++) { + for (int i = 10; i < 22; i++) { pinMode(i, INPUT); } pinMode(26, INPUT); From 4ffb9ab8255709ef4b8add7526b8ba01b8e2f72a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Fri, 19 Jan 2024 22:09:06 -0500 Subject: [PATCH 44/64] Update Payload_BME280_MPU6050_XS.ino move gps declaration --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 07dfdefa..86e6030b 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -8,6 +8,7 @@ #include #ifdef ARDUINO_ARCH_MBED_RP2040 #include +TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); #else #include @@ -17,7 +18,6 @@ UART Serial2(8, 9, 0, 0); Adafruit_BME280 bme; MPU6050 mpu6050(Wire); -TinyGPSPlus gps; long timer = 0; int bmePresent; From a8f3abd445f7fda070298e5781b2580b6fa1a496 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 09:40:34 -0500 Subject: [PATCH 45/64] Update Payload_BME280_MPU6050_XS.ino add back in Arduino-Pico support --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 86e6030b..a2e4ca46 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -10,7 +10,9 @@ #include TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); -#else +#else ifdef ARDUINO_ARCH_RP2040 +#include +TinyGPSPlus gps; #include #endif @@ -31,7 +33,7 @@ short ee_prom_word_read(int addr); int first_time = true; int first_read = true; -#if defined ARDUINO_ARCH_MBED_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) float T2 = 26.3; // Temperature data point 1 float R2 = 167; // Reading data point 1 float T1 = 2; // Temperature data point 2 From 8fdd931a97f09c87214eb814c751bda73f9a4218 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 09:45:50 -0500 Subject: [PATCH 46/64] Update Payload_BME280_MPU6050_XS.ino add or Arduino Pico --- .../Payload_BME280_MPU6050_XS.ino | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index a2e4ca46..bad51a4a 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -75,7 +75,7 @@ void setup() { Serial.println("Starting!"); -#ifdef ARDUINO_ARCH_MBED_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) Serial.println("This code is for the Raspberry Pi Pico hardware."); Serial.println("Starting Serial2 for optional GPS on JP12"); @@ -133,7 +133,8 @@ void setup() { { Serial.println("Calculating gyro offsets\n"); mpu6050.calcGyroOffsets(true); -#ifndef ARDUINO_ARCH_MBED_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) +#else Serial.println("Storing gyro offsets in EEPROM\n"); eeprom_word_write(0, 0xA07); @@ -291,7 +292,8 @@ void loop() { // Serial.println(result); // Serial.println("OK"); // Serial.println(counter++); -#ifndef ARDUINO_ARCH_MBED_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) +#else if (result == 'R') { Serial1.println("OK"); delay(100); @@ -307,7 +309,7 @@ void loop() { #endif } -#ifdef ARDUINO_ARCH_MBED_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) Serial.print("Squelch: "); Serial.println(digitalRead(15)); @@ -400,7 +402,7 @@ void led_set(int ledPin, bool state) digitalWrite(ledPin, state); #endif -#ifdef ARDUINO_ARCH_MBED_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) if (ledPin == greenLED) digitalWrite(19, state); else if (ledPin == blueLED) @@ -418,14 +420,14 @@ int read_analog() #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) sensorValue = analogRead(PA7); #endif -#if defined ARDUINO_ARCH_MBED_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) sensorValue = analogRead(28); #endif return(sensorValue); } void get_gps() { -#ifdef ARDUINO_ARCH_MBED_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) Serial.println("Getting GPS data"); bool newData = false; unsigned long start = millis(); From 78d5768633a20c93fe2e58088975167bf16e3e4e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 09:59:33 -0500 Subject: [PATCH 47/64] Update Payload_BME280_MPU6050_XS.ino rest of changes --- .../Payload_BME280_MPU6050_XS.ino | 82 ++++++++++++++++--- 1 file changed, 72 insertions(+), 10 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index bad51a4a..5b693265 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -6,13 +6,20 @@ #include #include #include -#ifdef ARDUINO_ARCH_MBED_RP2040 + +#ifdef ARDUINO_ARCH_MBED_RP2040 // if Arduino Mbed OS RP2040 Boards is used in Arduino IDE #include TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); -#else ifdef ARDUINO_ARCH_RP2040 + +#else ifdef ARDUINO_ARCH_RP2040 // if Raspberry Pi RP2040 Boards in Arduino IDE #include TinyGPSPlus gps; +bool check_for_wifi(); +bool wifi = false; +int led_builtin_pin; + +#else // if Sparkfun Pro Micro or STM32 #include #endif @@ -68,7 +75,13 @@ extern void payload_loop(); // sensor extension read function defined in payloa void setup() { Serial.begin(115200); // Serial Monitor for testing - + +#ifdef ARDUINO_ARCH_RP2040 + Serial1.setRX(1); + delay(100); + Serial1.setTX(0); + delay(100); +#endif Serial1.begin(115200); // for communication with Pi Zero delay(1000); @@ -352,10 +365,26 @@ void blink_setup() #endif #if defined ARDUINO_ARCH_MBED_RP2040 - pinMode(LED_BUILTIN, OUTPUT); - pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 - pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 + pinMode(LED_BUILTIN, OUTPUT); + pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 + pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 #endif + +#if defined ARDUINO_ARCH_RP2040 + if (check_for_wifi()) { + wifi = true; + led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W + pinMode(LED_BUILTIN, OUTPUT); +// configure_wifi(); + } else { + led_builtin_pin = 25; // manually set GPIO 25 for Pico board +// pinMode(25, OUTPUT); + pinMode(led_builtin_pin, OUTPUT); + + pinMode(18, OUTPUT); + pinMode(19, OUTPUT); + } +#endif } void blink(int length) @@ -370,9 +399,16 @@ void blink(int length) #endif #if defined ARDUINO_ARCH_MBED_RP2040 - digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON + digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON #endif +#if defined ARDUINO_ARCH_RP2040 + if (wifi) + digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON + else + digitalWrite(led_builtin_pin, HIGH); // set the built-in LED ON +#endif + delay(length); #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) @@ -386,7 +422,14 @@ delay(length); #if defined ARDUINO_ARCH_MBED_RP2040 digitalWrite(LED_BUILTIN, LOW); // set the built-in LED OFF -#endif +#endif + +#if defined ARDUINO_ARCH_RP2040 + if (wifi) + digitalWrite(LED_BUILTIN, LOW); // set the built-in LED ON + else + digitalWrite(led_builtin_pin, LOW); // set the built-in LED ON +#endif } void led_set(int ledPin, bool state) @@ -426,8 +469,27 @@ int read_analog() return(sensorValue); } -void get_gps() { +#if defined (ARDUINO_ARCH_MBED_RP2040) +bool check_for_wifi() { + + pinMode(29, INPUT); + const float conversion_factor = 3.3f / (1 << 12); + uint16_t result = analogRead(29); +// Serial.printf("ADC3 value: 0x%03x, voltage: %f V\n", result, result * conversion_factor); + + if (result < 0x10) { + Serial.println("\nPico W detected!\n"); + return(true); + } + else { + Serial.println("\nPico detected!\n"); + return(false); + } +} +#endif + #if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) +void get_gps() { Serial.println("Getting GPS data"); bool newData = false; unsigned long start = millis(); @@ -473,5 +535,5 @@ void get_gps() { } else // Serial.printf("GPS read no new data: %d\n", millis() - start); ; -#endif } +#endif From a1328cf994a1fbe2e0ab3e8ae77e43f5341a34c1 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:01:55 -0500 Subject: [PATCH 48/64] Update Payload_BME280_MPU6050_XS.ino fix else --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 5b693265..e7038274 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -12,7 +12,7 @@ TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); -#else ifdef ARDUINO_ARCH_RP2040 // if Raspberry Pi RP2040 Boards in Arduino IDE +#ifdef ARDUINO_ARCH_RP2040 // if Raspberry Pi RP2040 Boards in Arduino IDE #include TinyGPSPlus gps; bool check_for_wifi(); From 3b08bac7081d894760435e2d261693939e3bae2e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:04:14 -0500 Subject: [PATCH 49/64] Update Payload_BME280_MPU6050_XS.ino elseif --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index e7038274..1cac5bac 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -12,7 +12,7 @@ TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); -#ifdef ARDUINO_ARCH_RP2040 // if Raspberry Pi RP2040 Boards in Arduino IDE +#elseif ARDUINO_ARCH_RP2040 // if Raspberry Pi RP2040 Boards in Arduino IDE #include TinyGPSPlus gps; bool check_for_wifi(); From 823cb717ef1c3c099869dda0311c295417e62d59 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:06:20 -0500 Subject: [PATCH 50/64] Update Payload_BME280_MPU6050_XS.ino added defined --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 1cac5bac..1607c997 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -7,12 +7,12 @@ #include #include -#ifdef ARDUINO_ARCH_MBED_RP2040 // if Arduino Mbed OS RP2040 Boards is used in Arduino IDE +#if defined(ARDUINO_ARCH_MBED_RP2040) // if Arduino Mbed OS RP2040 Boards is used in Arduino IDE #include TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); -#elseif ARDUINO_ARCH_RP2040 // if Raspberry Pi RP2040 Boards in Arduino IDE +#elseif define(ARDUINO_ARCH_RP2040) // if Raspberry Pi RP2040 Boards in Arduino IDE #include TinyGPSPlus gps; bool check_for_wifi(); From e0c097a65206e771d33b28e4445be59b946b48ee Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:06:59 -0500 Subject: [PATCH 51/64] Update Payload_BME280_MPU6050_XS.ino defined --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 1607c997..6b60046e 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -12,7 +12,7 @@ TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); -#elseif define(ARDUINO_ARCH_RP2040) // if Raspberry Pi RP2040 Boards in Arduino IDE +#elseif defined(ARDUINO_ARCH_RP2040) // if Raspberry Pi RP2040 Boards in Arduino IDE #include TinyGPSPlus gps; bool check_for_wifi(); From 826e52e435d53337ff9da391ac2aa00f05bb5718 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:08:46 -0500 Subject: [PATCH 52/64] Update Payload_BME280_MPU6050_XS.ino elif --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 6b60046e..eee6f75b 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -12,7 +12,7 @@ TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); -#elseif defined(ARDUINO_ARCH_RP2040) // if Raspberry Pi RP2040 Boards in Arduino IDE +#elif defined(ARDUINO_ARCH_RP2040) // if Raspberry Pi RP2040 Boards in Arduino IDE #include TinyGPSPlus gps; bool check_for_wifi(); From c6c4e88704617c2b74d5abadc1b703cd87f5d0bf Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:13:18 -0500 Subject: [PATCH 53/64] Update Payload_BME280_MPU6050_XS.ino test board print --- .../Payload_BME280_MPU6050_XS.ino | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index eee6f75b..bb897f0e 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -75,13 +75,22 @@ extern void payload_loop(); // sensor extension read function defined in payloa void setup() { Serial.begin(115200); // Serial Monitor for testing - + +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) + Serial.println("Pico with Mbed"); +#elif defined (!ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) + Serial.println("Pico with RP2040"); +#else + Serial.println("Pro Micro"); +#endif +/* #ifdef ARDUINO_ARCH_RP2040 Serial1.setRX(1); delay(100); Serial1.setTX(0); delay(100); #endif +*/ Serial1.begin(115200); // for communication with Pi Zero delay(1000); From db113151ace3b6b467c83277ab84af57ff26eb59 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:37:49 -0500 Subject: [PATCH 54/64] Update Payload_BME280_MPU6050_XS.ino fixed board conditionals --- .../Payload_BME280_MPU6050_XS.ino | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index bb897f0e..fe865953 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -7,12 +7,12 @@ #include #include -#if defined(ARDUINO_ARCH_MBED_RP2040) // if Arduino Mbed OS RP2040 Boards is used in Arduino IDE +#if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) // if Arduino Mbed OS RP2040 Boards is used in Arduino IDE #include TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); -#elif defined(ARDUINO_ARCH_RP2040) // if Raspberry Pi RP2040 Boards in Arduino IDE +#elif !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) // if Raspberry Pi RP2040 Boards in Arduino IDE #include TinyGPSPlus gps; bool check_for_wifi(); @@ -76,30 +76,32 @@ void setup() { Serial.begin(115200); // Serial Monitor for testing -#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) - Serial.println("Pico with Mbed"); -#elif defined (!ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) - Serial.println("Pico with RP2040"); -#else - Serial.println("Pro Micro"); -#endif -/* -#ifdef ARDUINO_ARCH_RP2040 +#if defined (!ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) Serial1.setRX(1); delay(100); Serial1.setTX(0); delay(100); #endif -*/ + Serial1.begin(115200); // for communication with Pi Zero - delay(1000); - + delay(2000); + +#if defined (ARDUINO_ARCH_MBED_RP2040) && (ARDUINO_ARCH_RP2040) + Serial.println("Pico with Mbed"); +#elif !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) + Serial.println("Pico with RP2040"); +#elif defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) + Serial.println("STM32"); +#elif defined __AVR_ATmega32U4__ + Serial.println("Pro Micro"); +#else + Serial.println("Unknown board"); +#endif + Serial.println("Starting!"); #if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) - Serial.println("This code is for the Raspberry Pi Pico hardware."); - Serial.println("Starting Serial2 for optional GPS on JP12"); // Serial2.begin(9600); // serial from - some modules need 115200 Serial2.begin(9600); // serial from GPS or other serial sensor. Some GPS need 115200 @@ -111,8 +113,7 @@ void setup() { pinMode(26, INPUT); pinMode(27, INPUT); pinMode(28, INPUT); - pinMode(15, INPUT_PULLUP); // squelch - + pinMode(15, INPUT_PULLUP); // squelch #endif blink_setup(); @@ -373,13 +374,13 @@ void blink_setup() pinMode(blueLED,OUTPUT); #endif -#if defined ARDUINO_ARCH_MBED_RP2040 +if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) pinMode(LED_BUILTIN, OUTPUT); pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 #endif -#if defined ARDUINO_ARCH_RP2040 +if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) if (check_for_wifi()) { wifi = true; led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W @@ -407,11 +408,11 @@ void blink(int length) TXLED0; //TX LED is not tied to a normally controlled pin so a macro is needed, turn LED OFF #endif -#if defined ARDUINO_ARCH_MBED_RP2040 +if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON #endif -#if defined ARDUINO_ARCH_RP2040 +if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) if (wifi) digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON else @@ -429,11 +430,11 @@ delay(length); TXLED0; //TX LED macro to turn LED ON #endif -#if defined ARDUINO_ARCH_MBED_RP2040 +if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) digitalWrite(LED_BUILTIN, LOW); // set the built-in LED OFF #endif -#if defined ARDUINO_ARCH_RP2040 +if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) if (wifi) digitalWrite(LED_BUILTIN, LOW); // set the built-in LED ON else @@ -478,7 +479,7 @@ int read_analog() return(sensorValue); } -#if defined (ARDUINO_ARCH_MBED_RP2040) +if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) bool check_for_wifi() { pinMode(29, INPUT); From 9d347681d6cdc080caa9c152a9dd4b2ee0c8d668 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:41:14 -0500 Subject: [PATCH 55/64] Update Payload_BME280_MPU6050_XS.ino fix define typo --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index fe865953..995820dd 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -76,7 +76,7 @@ void setup() { Serial.begin(115200); // Serial Monitor for testing -#if defined (!ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) Serial1.setRX(1); delay(100); Serial1.setTX(0); From 250da61c5bca941b37e9d2d01fffed117ac76377 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:42:43 -0500 Subject: [PATCH 56/64] Update Payload_BME280_MPU6050_XS.ino missing # --- .../Payload_BME280_MPU6050_XS.ino | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 995820dd..0728ea1e 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -374,13 +374,13 @@ void blink_setup() pinMode(blueLED,OUTPUT); #endif -if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) +#if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) pinMode(LED_BUILTIN, OUTPUT); pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 #endif -if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) if (check_for_wifi()) { wifi = true; led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W @@ -408,11 +408,11 @@ void blink(int length) TXLED0; //TX LED is not tied to a normally controlled pin so a macro is needed, turn LED OFF #endif -if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) +#if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON #endif -if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) if (wifi) digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON else @@ -430,11 +430,11 @@ delay(length); TXLED0; //TX LED macro to turn LED ON #endif -if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) +#if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) digitalWrite(LED_BUILTIN, LOW); // set the built-in LED OFF #endif -if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) if (wifi) digitalWrite(LED_BUILTIN, LOW); // set the built-in LED ON else @@ -479,7 +479,7 @@ int read_analog() return(sensorValue); } -if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) bool check_for_wifi() { pinMode(29, INPUT); From e11d993bd5230d58dd4dcdce9cfb7249518d189f Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:47:42 -0500 Subject: [PATCH 57/64] Update Payload_BME280_MPU6050_XS.ino eeprom if fixed --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 0728ea1e..1d613dd9 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -345,7 +345,7 @@ void loop() { void eeprom_word_write(int addr, int val) { -#ifndef ARDUINO_ARCH_MBED_RP2040 +#if !defined(ARDUINO_ARCH_MBED_RP2040) && !defined(ARDUINO_ARCH_RP2040) EEPROM.write(addr * 2, lowByte(val)); EEPROM.write(addr * 2 + 1, highByte(val)); #endif @@ -353,7 +353,7 @@ void eeprom_word_write(int addr, int val) short eeprom_word_read(int addr) { -#ifndef ARDUINO_ARCH_MBED_RP2040 +#if !defined(ARDUINO_ARCH_MBED_RP2040) && !defined(ARDUINO_ARCH_RP2040) return ((EEPROM.read(addr * 2 + 1) << 8) | EEPROM.read(addr * 2)); #endif } From c98016b26a1d2e85dc462f886b111565bbbdac6a Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:50:43 -0500 Subject: [PATCH 58/64] Update Payload_BME280_MPU6050_XS.ino eeprom read returns value --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 1d613dd9..274648cc 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -353,9 +353,11 @@ void eeprom_word_write(int addr, int val) short eeprom_word_read(int addr) { + int result = 0; #if !defined(ARDUINO_ARCH_MBED_RP2040) && !defined(ARDUINO_ARCH_RP2040) - return ((EEPROM.read(addr * 2 + 1) << 8) | EEPROM.read(addr * 2)); -#endif + result = ((EEPROM.read(addr * 2 + 1) << 8) | EEPROM.read(addr * 2)); +#endif + return result } void blink_setup() From 209bfb5ba9bfb74bbe340ed2562c23f01e461a5e Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:51:15 -0500 Subject: [PATCH 59/64] Update Payload_BME280_MPU6050_XS.ino missing ; --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 274648cc..4db0bf6a 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -357,7 +357,7 @@ short eeprom_word_read(int addr) #if !defined(ARDUINO_ARCH_MBED_RP2040) && !defined(ARDUINO_ARCH_RP2040) result = ((EEPROM.read(addr * 2 + 1) << 8) | EEPROM.read(addr * 2)); #endif - return result + return result; } void blink_setup() From 718a728b5ef89351dfba775659a28ce889d71f95 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:55:57 -0500 Subject: [PATCH 60/64] Update Payload_BME280_MPU6050_XS.ino fix !RP2040 --- .../Payload_BME280_MPU6050_XS.ino | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 4db0bf6a..5ab3f22b 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -156,8 +156,9 @@ void setup() { { Serial.println("Calculating gyro offsets\n"); mpu6050.calcGyroOffsets(true); -#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) -#else +//#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) +#if !defined (ARDUINO_ARCH_RP2040) +//#else Serial.println("Storing gyro offsets in EEPROM\n"); eeprom_word_write(0, 0xA07); @@ -315,8 +316,9 @@ void loop() { // Serial.println(result); // Serial.println("OK"); // Serial.println(counter++); -#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) -#else +//#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) +#if !defined (ARDUINO_ARCH_RP2040) +//#else if (result == 'R') { Serial1.println("OK"); delay(100); From 312c9035bbc0ff9ec8db004c34ce3c8ebe12357c Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 10:59:12 -0500 Subject: [PATCH 61/64] Update Payload_BME280_MPU6050_XS.ino cleanup --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 4 ---- 1 file changed, 4 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index 5ab3f22b..f64ff084 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -156,9 +156,7 @@ void setup() { { Serial.println("Calculating gyro offsets\n"); mpu6050.calcGyroOffsets(true); -//#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) #if !defined (ARDUINO_ARCH_RP2040) -//#else Serial.println("Storing gyro offsets in EEPROM\n"); eeprom_word_write(0, 0xA07); @@ -316,9 +314,7 @@ void loop() { // Serial.println(result); // Serial.println("OK"); // Serial.println(counter++); -//#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) #if !defined (ARDUINO_ARCH_RP2040) -//#else if (result == 'R') { Serial1.println("OK"); delay(100); From f26919ae112191a2faeabf5f38313a1ecb74d5ae Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 11:31:35 -0500 Subject: [PATCH 62/64] Update Payload_BME280_MPU6050_XS_Extended.ino sync with non extended after changes --- .../Payload_BME280_MPU6050_XS_Extended.ino | 141 ++++++++++++++---- 1 file changed, 109 insertions(+), 32 deletions(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino index 07ca7c0c..f64ff084 100644 --- a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino +++ b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino @@ -6,10 +6,20 @@ #include #include #include + +#if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) // if Arduino Mbed OS RP2040 Boards is used in Arduino IDE #include -#ifdef ARDUINO_ARCH_RP2040 +TinyGPSPlus gps; UART Serial2(8, 9, 0, 0); -#else + +#elif !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) // if Raspberry Pi RP2040 Boards in Arduino IDE +#include +TinyGPSPlus gps; +bool check_for_wifi(); +bool wifi = false; +int led_builtin_pin; + +#else // if Sparkfun Pro Micro or STM32 #include #endif @@ -17,7 +27,6 @@ UART Serial2(8, 9, 0, 0); Adafruit_BME280 bme; MPU6050 mpu6050(Wire); -TinyGPSPlus gps; long timer = 0; int bmePresent; @@ -31,7 +40,7 @@ short ee_prom_word_read(int addr); int first_time = true; int first_read = true; -#if defined ARDUINO_ARCH_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) float T2 = 26.3; // Temperature data point 1 float R2 = 167; // Reading data point 1 float T1 = 2; // Temperature data point 2 @@ -66,29 +75,45 @@ extern void payload_loop(); // sensor extension read function defined in payloa void setup() { Serial.begin(115200); // Serial Monitor for testing - + +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) + Serial1.setRX(1); + delay(100); + Serial1.setTX(0); + delay(100); +#endif + Serial1.begin(115200); // for communication with Pi Zero - delay(1000); - + delay(2000); + +#if defined (ARDUINO_ARCH_MBED_RP2040) && (ARDUINO_ARCH_RP2040) + Serial.println("Pico with Mbed"); +#elif !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) + Serial.println("Pico with RP2040"); +#elif defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) + Serial.println("STM32"); +#elif defined __AVR_ATmega32U4__ + Serial.println("Pro Micro"); +#else + Serial.println("Unknown board"); +#endif + Serial.println("Starting!"); -#ifdef ARDUINO_ARCH_RP2040 - Serial.println("This code is for the Raspberry Pi Pico hardware."); - +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) Serial.println("Starting Serial2 for optional GPS on JP12"); // Serial2.begin(9600); // serial from - some modules need 115200 Serial2.begin(9600); // serial from GPS or other serial sensor. Some GPS need 115200 // set all Pico GPIO connected pins to input - for (int i = 6; i < 22; i++) { + for (int i = 10; i < 22; i++) { pinMode(i, INPUT); } pinMode(26, INPUT); pinMode(27, INPUT); pinMode(28, INPUT); - pinMode(15, INPUT_PULLUP); // squelch - + pinMode(15, INPUT_PULLUP); // squelch #endif blink_setup(); @@ -131,7 +156,7 @@ void setup() { { Serial.println("Calculating gyro offsets\n"); mpu6050.calcGyroOffsets(true); -#ifndef ARDUINO_ARCH_RP2040 +#if !defined (ARDUINO_ARCH_RP2040) Serial.println("Storing gyro offsets in EEPROM\n"); eeprom_word_write(0, 0xA07); @@ -289,7 +314,7 @@ void loop() { // Serial.println(result); // Serial.println("OK"); // Serial.println(counter++); -#ifndef ARDUINO_ARCH_RP2040 +#if !defined (ARDUINO_ARCH_RP2040) if (result == 'R') { Serial1.println("OK"); delay(100); @@ -305,7 +330,7 @@ void loop() { #endif } -#ifdef ARDUINO_ARCH_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) Serial.print("Squelch: "); Serial.println(digitalRead(15)); @@ -318,7 +343,7 @@ void loop() { void eeprom_word_write(int addr, int val) { -#ifndef ARDUINO_ARCH_RP2040 +#if !defined(ARDUINO_ARCH_MBED_RP2040) && !defined(ARDUINO_ARCH_RP2040) EEPROM.write(addr * 2, lowByte(val)); EEPROM.write(addr * 2 + 1, highByte(val)); #endif @@ -326,9 +351,11 @@ void eeprom_word_write(int addr, int val) short eeprom_word_read(int addr) { -#ifndef ARDUINO_ARCH_RP2040 - return ((EEPROM.read(addr * 2 + 1) << 8) | EEPROM.read(addr * 2)); -#endif + int result = 0; +#if !defined(ARDUINO_ARCH_MBED_RP2040) && !defined(ARDUINO_ARCH_RP2040) + result = ((EEPROM.read(addr * 2 + 1) << 8) | EEPROM.read(addr * 2)); +#endif + return result; } void blink_setup() @@ -347,11 +374,27 @@ void blink_setup() pinMode(blueLED,OUTPUT); #endif -#if defined ARDUINO_ARCH_RP2040 - pinMode(LED_BUILTIN, OUTPUT); - pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 - pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 +#if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) + pinMode(LED_BUILTIN, OUTPUT); + pinMode(18, OUTPUT); // blue LED on STEM Payload Board v1.3.2 + pinMode(19, OUTPUT); // green LED on STEM Payload Board v1.3.2 #endif + +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) + if (check_for_wifi()) { + wifi = true; + led_builtin_pin = LED_BUILTIN; // use default GPIO for Pico W + pinMode(LED_BUILTIN, OUTPUT); +// configure_wifi(); + } else { + led_builtin_pin = 25; // manually set GPIO 25 for Pico board +// pinMode(25, OUTPUT); + pinMode(led_builtin_pin, OUTPUT); + + pinMode(18, OUTPUT); + pinMode(19, OUTPUT); + } +#endif } void blink(int length) @@ -365,10 +408,17 @@ void blink(int length) TXLED0; //TX LED is not tied to a normally controlled pin so a macro is needed, turn LED OFF #endif -#if defined ARDUINO_ARCH_RP2040 - digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON +#if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) + digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON #endif +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) + if (wifi) + digitalWrite(LED_BUILTIN, HIGH); // set the built-in LED ON + else + digitalWrite(led_builtin_pin, HIGH); // set the built-in LED ON +#endif + delay(length); #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) @@ -380,9 +430,16 @@ delay(length); TXLED0; //TX LED macro to turn LED ON #endif -#if defined ARDUINO_ARCH_RP2040 +#if defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) digitalWrite(LED_BUILTIN, LOW); // set the built-in LED OFF -#endif +#endif + +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) + if (wifi) + digitalWrite(LED_BUILTIN, LOW); // set the built-in LED ON + else + digitalWrite(led_builtin_pin, LOW); // set the built-in LED ON +#endif } void led_set(int ledPin, bool state) @@ -398,7 +455,7 @@ void led_set(int ledPin, bool state) digitalWrite(ledPin, state); #endif -#ifdef ARDUINO_ARCH_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) if (ledPin == greenLED) digitalWrite(19, state); else if (ledPin == blueLED) @@ -416,14 +473,34 @@ int read_analog() #if defined(ARDUINO_ARCH_STM32F0) || defined(ARDUINO_ARCH_STM32F1) || defined(ARDUINO_ARCH_STM32F3) || defined(ARDUINO_ARCH_STM32F4) || defined(ARDUINO_ARCH_STM32L4) sensorValue = analogRead(PA7); #endif -#if defined ARDUINO_ARCH_RP2040 +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) sensorValue = analogRead(28); #endif return(sensorValue); } +#if !defined(ARDUINO_ARCH_MBED_RP2040) && defined(ARDUINO_ARCH_RP2040) +bool check_for_wifi() { + + pinMode(29, INPUT); + const float conversion_factor = 3.3f / (1 << 12); + uint16_t result = analogRead(29); +// Serial.printf("ADC3 value: 0x%03x, voltage: %f V\n", result, result * conversion_factor); + + if (result < 0x10) { + Serial.println("\nPico W detected!\n"); + return(true); + } + else { + Serial.println("\nPico detected!\n"); + return(false); + } +} +#endif + +#if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) void get_gps() { -#ifdef ARDUINO_ARCH_RP2040 + Serial.println("Getting GPS data"); bool newData = false; unsigned long start = millis(); @@ -468,5 +545,5 @@ void get_gps() { } else // Serial.printf("GPS read no new data: %d\n", millis() - start); ; -#endif } +#endif From c95d2a0ec7499d4c6df7fb756fe0935181dc09ff Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 11:39:48 -0500 Subject: [PATCH 63/64] Update Payload_BME280_MPU6050_XS.ino remove Getting GPS Data print --- .../Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino index f64ff084..dbf250fa 100644 --- a/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino +++ b/stempayload/Payload_BME280_MPU6050_XS/Payload_BME280_MPU6050_XS.ino @@ -500,7 +500,7 @@ bool check_for_wifi() { #if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) void get_gps() { - Serial.println("Getting GPS data"); +// Serial.println("Getting GPS data"); bool newData = false; unsigned long start = millis(); From 92bcf18df64e9eed84dde70e417810e1c2fb175b Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Sat, 20 Jan 2024 11:40:48 -0500 Subject: [PATCH 64/64] Update Payload_BME280_MPU6050_XS_Extended.ino no GPS print --- .../Payload_BME280_MPU6050_XS_Extended.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino index f64ff084..dbf250fa 100644 --- a/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino +++ b/stempayload/Payload_BME280_MPU6050_XS_Extended/Payload_BME280_MPU6050_XS_Extended.ino @@ -500,7 +500,7 @@ bool check_for_wifi() { #if defined (ARDUINO_ARCH_MBED_RP2040) || (ARDUINO_ARCH_RP2040) void get_gps() { - Serial.println("Getting GPS data"); +// Serial.println("Getting GPS data"); bool newData = false; unsigned long start = millis();