From 13b8c140b46f70b0c784819e4e893b38896832bd Mon Sep 17 00:00:00 2001 From: Jm Date: Thu, 18 Feb 2021 21:47:16 -0800 Subject: [PATCH 1/6] Update StoreForwardPlugin.md --- docs/software/plugins/StoreForwardPlugin.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/software/plugins/StoreForwardPlugin.md b/docs/software/plugins/StoreForwardPlugin.md index 129005ba..02389e42 100644 --- a/docs/software/plugins/StoreForwardPlugin.md +++ b/docs/software/plugins/StoreForwardPlugin.md @@ -29,6 +29,12 @@ UC 4) support for a mesh to have multiple routers that have the store & forward UC 5) Support for "long term" delayed messages and "short term" delayed messages. Handle the cases slightly different to improve user expierence. A short term delayed message would be a message that was resent becaue a node was not heard from for <5 minutes. A long term delayed message is a message that has not been delivered in >5 minutes. +UC 6) Eventually we could add a "want_store_and_forward" bit to MeshPacket and that could be nicer than whitelists in this plugin. Initially we'd only set that bit in text messages (and any other plugin messages that can cope with this). This change would be backward wire compatible so can add easily later. + +UC 7) Currently the way we allocate messages in the device code is super inefficient. It always allocates the worst case message size. Really we should dynamically allocate just the # of bytes we need. This would allow many more MeshPackets to be kept in RAM. + +UC 8) We'll want a "delayed" bit in MeshPacket. This will indicate that the message was not received in real time. + # Things to consider Not all these cases will be initially implemented. It's just a running stream of thoughts to be considered. From 621313d63cd5630827e906247c595ed4e487e9e4 Mon Sep 17 00:00:00 2001 From: Jm Date: Fri, 19 Feb 2021 16:58:52 -0800 Subject: [PATCH 2/6] #701 - Add system up time to debug output --- src/RedirectablePrint.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/RedirectablePrint.cpp b/src/RedirectablePrint.cpp index 541b55c7..c60b8a50 100644 --- a/src/RedirectablePrint.cpp +++ b/src/RedirectablePrint.cpp @@ -78,9 +78,9 @@ size_t RedirectablePrint::logDebug(const char *format, ...) int min = (hms % SEC_PER_HOUR) / SEC_PER_MIN; int sec = (hms % SEC_PER_HOUR) % SEC_PER_MIN; // or hms % SEC_PER_MIN - r += printf("%02d:%02d:%02d ", hour, min, sec); + r += printf("%02d:%02d:%02d %u ", hour, min, sec, millis() / 1000); } else - r += printf("??:??:?? "); + r += printf("??:??:?? %u ", millis() / 1000); auto thread = concurrency::OSThread::currentThread; if(thread) { From 47b942ca00ac3786d38ab018b5c4e6ba224653fa Mon Sep 17 00:00:00 2001 From: Jm Date: Fri, 19 Feb 2021 17:46:15 -0800 Subject: [PATCH 3/6] #697 - Fixed button selection for tlora v2 1.6 --- src/configuration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configuration.h b/src/configuration.h index 4fd395fd..e5b80efe 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -355,7 +355,7 @@ along with this program. If not, see . #define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost #define LED_PIN 25 // If defined we will blink this LED #define BUTTON_PIN \ - 12 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one + 34 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one // between this pin and ground #define BUTTON_NEED_PULLUP From c690f8157437865a8293a891db6384511b97e5ca Mon Sep 17 00:00:00 2001 From: Jm Date: Fri, 19 Feb 2021 18:19:14 -0800 Subject: [PATCH 4/6] #697 Disable internal pullup on this board. --- src/configuration.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/configuration.h b/src/configuration.h index e5b80efe..55612a12 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -355,9 +355,14 @@ along with this program. If not, see . #define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost #define LED_PIN 25 // If defined we will blink this LED #define BUTTON_PIN \ - 34 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one + 12 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one // between this pin and ground -#define BUTTON_NEED_PULLUP + +/* Don't enable the internal pull up on the TLORA_V2_1_16. GPIO 12 is connected to a bidirectional + diode. If someone needs to use a button, they should connect an external pull up that's stronger + than what's built into the esp32 +*/ +// #define BUTTON_NEED_PULLUP #define USE_RF95 #define LORA_DIO0 26 // a No connect on the SX1262 module From e4141df0e9ddb2f95dd01daa548b6c3453a82533 Mon Sep 17 00:00:00 2001 From: Jm Date: Sat, 20 Feb 2021 00:34:25 -0800 Subject: [PATCH 5/6] #697 GPIO 12 is an odd pin. --- src/configuration.h | 19 +++++++------------ src/main.cpp | 7 +++++-- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/configuration.h b/src/configuration.h index 55612a12..cb68a2e3 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -354,15 +354,9 @@ along with this program. If not, see . #define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost #define LED_PIN 25 // If defined we will blink this LED -#define BUTTON_PIN \ - 12 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one - // between this pin and ground +#define BUTTON_PIN 12 // If defined, this will be used for user button presses, -/* Don't enable the internal pull up on the TLORA_V2_1_16. GPIO 12 is connected to a bidirectional - diode. If someone needs to use a button, they should connect an external pull up that's stronger - than what's built into the esp32 -*/ -// #define BUTTON_NEED_PULLUP +#define BUTTON_NEED_PULLUP #define USE_RF95 #define LORA_DIO0 26 // a No connect on the SX1262 module @@ -380,15 +374,16 @@ along with this program. If not, see . #define GPS_RESET_N 10 #define GPS_EXTINT 23 // On MAX-M8 module pin name is EXTINT. On L70 module pin name is STANDBY. -#define BATTERY_PIN 39 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage +#define BATTERY_PIN 39 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage #define BATTERY_EN_PIN 14 // Voltage voltage divider enable pin connected to mosfet #define I2C_SDA 4 // I2C pins for this board #define I2C_SCL 2 -#define LED_PIN 12 // If defined we will blink this LED -//#define BUTTON_PIN 36 // If defined, this will be used for user button presses (ToDo problem on that line on debug screen --> Long press start!) -//#define BUTTON_NEED_PULLUP //GPIOs 34 to 39 are GPIs – input only pins. These pins don’t have internal pull-ups or pull-down resistors. +#define LED_PIN 12 // If defined we will blink this LED +//#define BUTTON_PIN 36 // If defined, this will be used for user button presses (ToDo problem on that line on debug screen --> +//Long press start!) #define BUTTON_NEED_PULLUP //GPIOs 34 to 39 are GPIs – input only pins. These pins don’t have internal +//pull-ups or pull-down resistors. #define USE_RF95 #define LORA_DIO0 38 // a No connect on the SX1262 module diff --git a/src/main.cpp b/src/main.cpp index bb3ec482..9bd34c23 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -305,12 +305,15 @@ void setup() #ifdef BUTTON_PIN #ifndef NO_ESP32 - // If BUTTON_PIN is held down during the startup process, - // force the device to go into a SoftAP mode. bool forceSoftAP = 0; + + // If the button is connected to GPIO 12, don't enable the ability to use + // meshtasticAdmin on the device. pinMode(BUTTON_PIN, INPUT); + #ifdef BUTTON_NEED_PULLUP gpio_pullup_en((gpio_num_t)BUTTON_PIN); + delay(10); #endif // BUTTON_PIN is pulled high by a 12k resistor. From ca40cb4be33ef05f4c29b9bb147ddfc8c1b4c634 Mon Sep 17 00:00:00 2001 From: Jm Date: Sat, 20 Feb 2021 00:43:56 -0800 Subject: [PATCH 6/6] Update RangeTestPlugin.cpp --- src/plugins/esp32/RangeTestPlugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/esp32/RangeTestPlugin.cpp b/src/plugins/esp32/RangeTestPlugin.cpp index fad1991d..d453574f 100644 --- a/src/plugins/esp32/RangeTestPlugin.cpp +++ b/src/plugins/esp32/RangeTestPlugin.cpp @@ -37,7 +37,7 @@ int32_t RangeTestPlugin::runOnce() //radioConfig.preferences.range_test_plugin_enabled = 1; //radioConfig.preferences.range_test_plugin_sender = 45; - // radioConfig.preferences.range_test_plugin_save = 1; + //radioConfig.preferences.range_test_plugin_save = 1; // Fixed position is useful when testing indoors. // radioConfig.preferences.fixed_position = 1;