From 4a3d8845264ab73b2d495322e9e443635b9ff328 Mon Sep 17 00:00:00 2001 From: Gunnar Skjold Date: Tue, 11 Jul 2023 16:43:06 +0200 Subject: [PATCH] Disable TX pin on HAN port --- src/AmsToMqttBridge.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/AmsToMqttBridge.cpp b/src/AmsToMqttBridge.cpp index ded2e872..676c4040 100644 --- a/src/AmsToMqttBridge.cpp +++ b/src/AmsToMqttBridge.cpp @@ -896,7 +896,7 @@ void setupHanPort(GpioConfig& gpioConfig, uint32_t baud, uint8_t parityOrdinal, hwSerial->setRxBufferSize(64 * meterConfig.bufferSize); #if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) - hwSerial->begin(baud, serialConfig, -1, -1, invert); + hwSerial->begin(baud, serialConfig, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE, invert); uart_set_pin(UART_NUM_1, UART_PIN_NO_CHANGE, pin, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE); #elif defined(ESP32) hwSerial->begin(baud, serialConfig, -1, -1, invert); @@ -914,6 +914,23 @@ void setupHanPort(GpioConfig& gpioConfig, uint32_t baud, uint8_t parityOrdinal, } #endif + // Prevent pullup on TX pin if not uart0 + #if defined(CONFIG_IDF_TARGET_ESP32S2) + pinMode(17, INPUT); + #elif defined(CONFIG_IDF_TARGET_ESP32C3) + pinMode(7, INPUT); + #elif defined(ESP32) + if(pin == 9) { + pinMode(10, INPUT); + } else if(pin == 16) { + pinMode(17, INPUT); + } + #elif defined(ESP8266) + if(pin == 113) { + pinMode(15, INPUT); + } + #endif + #if defined(ESP32) hwSerial->onReceiveError(rxerr); #endif