From fe79a968278ee3a432b1e4e22e14d3ffe7f1a3de Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Fri, 14 Feb 2020 19:52:15 +0100 Subject: [PATCH 1/2] Added change to allow auto modem sleep --- src/AmsToMqttBridge.ino | 1 + 1 file changed, 1 insertion(+) diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index 08c17c72..cad99b8c 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -131,6 +131,7 @@ void loop() else led_off(); } ws.loop(); + delay(1); // Needed for auto modem sleep } From b2174dd521e67d84318b5c509c8648bc3497dc1d Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Fri, 14 Feb 2020 20:14:30 +0100 Subject: [PATCH 2/2] If debug mode and HW_ROARFRED, use software serial to set upp RX for HAN with 2400 and TX for debugging with 115200 --- src/AmsToMqttBridge.h | 6 ++++++ src/AmsToMqttBridge.ino | 22 ++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/AmsToMqttBridge.h b/src/AmsToMqttBridge.h index 0b984c9f..111f42bf 100644 --- a/src/AmsToMqttBridge.h +++ b/src/AmsToMqttBridge.h @@ -17,7 +17,13 @@ #include #define TEMP_SENSOR_PIN 5 // Temperature sensor connected to GPIO5 +#if DEBUG_MODE +#define SOFTWARE_SERIAL 1 +#include +SoftwareSerial *hanSerial = new SoftwareSerial(3); +#else HardwareSerial *hanSerial = &Serial; +#endif // Build settings for Wemos Lolin D32 #elif defined(ARDUINO_LOLIN_D32) diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index cad99b8c..2a73e32e 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -27,7 +27,7 @@ WiFiClient *client; MQTTClient mqtt(512); // Object used for debugging -HardwareSerial* debugger = NULL; +Stream* debugger = NULL; // The HAN Port reader, used to read serial data and decode DLMS HanReader hanReader; @@ -39,17 +39,15 @@ void setup() { } #if DEBUG_MODE - debugger = &Serial; - #if SOFTWARE_SERIAL - debugger->begin(115200, SERIAL_8N1); - #else - if(config.meterType == 3) { - hanSerial->begin(2400, SERIAL_8N1); - } else { - hanSerial->begin(2400, SERIAL_8E1); - } - #endif - while (!&debugger); +#if HW_ROARFRED + SoftwareSerial *ser = new SoftwareSerial(-1, 1); + ser->begin(115200, SWSERIAL_8N1); + debugger = ser; +#else + HardwareSerial *ser = &Serial; + ser->begin(115200, SERIAL_8N1); +#endif + debugger = ser; #endif if (debugger) {