diff --git a/CHANGELOG.md b/CHANGELOG.md index d389030cd..f352c4fc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,19 +3,25 @@ All notable changes to this project will be documented in this file. ## [Unreleased] - Development -## [14.0.0.3] +## [14.0.0.4] ### Added ### Breaking Changed +### Changed +- TCP bridge increased baudrate selection (#21528) + +### Fixed + +### Removed + +## [14.0.0.3] 20240530 ### Changed - ESP32 Core3 platform update from 2024.05.12 to 2024.05.13 (#21524) ### Fixed - ESP32 slow response when using UDP as in emulation (#21470) -### Removed - ## [14.0.0.2] 20240529 ### Added - Disabled watchdog for ESP32 and variants (#21509) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 809f743bd..0986271de 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -119,7 +119,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm [Complete list](BUILDS.md) of available feature and sensors. -## Changelog v14.0.0.3 +## Changelog v14.0.0.4 ### Added - Optional command ``WebRun`` (as WebQuery extension) [#21364](https://github.com/arendst/Tasmota/issues/21364) - Support for Knx dimmer and color [#21434](https://github.com/arendst/Tasmota/issues/21434) @@ -132,6 +132,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm - ESP32 Core3 platform update from 2024.05.11 to 2024.05.13 [#21524](https://github.com/arendst/Tasmota/issues/21524) - GPIOViewer from v1.5.2 to v1.5.3 - On universal display remove default backlight power if a PWM channel is used for backlight +- TCP bridge increased baudrate selection [#21528](https://github.com/arendst/Tasmota/issues/21528) - Support W5500 SPI ethernet using four SPI GPIOs only without IRQ and RESET - ESP32 compiler option from `target-align` to `no-target-align` [#21407](https://github.com/arendst/Tasmota/issues/21407) - ESP32 I2S audio improvements [#21433](https://github.com/arendst/Tasmota/issues/21433) diff --git a/tasmota/include/tasmota_types.h b/tasmota/include/tasmota_types.h index fd00156fe..97f0a2c9d 100755 --- a/tasmota/include/tasmota_types.h +++ b/tasmota/include/tasmota_types.h @@ -697,8 +697,9 @@ typedef struct { uint8_t mqtt_wifi_timeout; // 530 uint8_t ina219_mode; // 531 - uint16_t ex_pulse_timer[8]; // 532 ex_pulse_timer free since 11.0.0.3 + uint16_t ex_pulse_timer[7]; // 532 ex_pulse_timer free since 11.0.0.3 + uint16_t tcp_baudrate; // 540 uint16_t button_debounce; // 542 uint32_t ipv4_address[5]; // 544 uint32_t ipv4_rgx_address; // 558 @@ -742,7 +743,6 @@ typedef struct { uint16_t shutter_motorstop; // 738 uint8_t battery_level_percent; // 73A uint8_t hdmi_addr[2]; // 73B HDMI CEC physical address - warning this is a non-aligned uint16 - uint8_t novasds_startingoffset; // 73D uint8_t web_color[18][3]; // 73E uint16_t display_width; // 774 @@ -832,7 +832,9 @@ typedef struct { uint8_t windmeter_tele_pchange; // F3E uint8_t ledpwm_on; // F3F uint8_t ledpwm_off; // F40 - uint8_t tcp_baudrate; // F41 + + uint8_t ex_tcp_baudrate; // F41 ex_tcp_baudrate, free since v14.0.0.4 + uint8_t fallback_module; // F42 uint8_t shutter_mode; // F43 uint16_t energy_power_delta[3]; // F44 @@ -843,9 +845,7 @@ typedef struct { uint8_t shd_warmup_time; // F5E uint8_t tcp_config; // F5F uint8_t light_step_pixels; // F60 - uint8_t hdmi_cec_device_type; // F61 - v13.1.0.1 (was ex_modbus_sbaudrate v12.2.0.5) - uint8_t modbus_sconfig; // F62 uint8_t windmeter_measure_intvl; // F63 diff --git a/tasmota/include/tasmota_version.h b/tasmota/include/tasmota_version.h index f8ec8d8d3..a46bf1d7d 100644 --- a/tasmota/include/tasmota_version.h +++ b/tasmota/include/tasmota_version.h @@ -22,6 +22,6 @@ #define TASMOTA_SHA_SHORT // Filled by Github sed -const uint32_t TASMOTA_VERSION = 0x0E000003; // 14.0.0.3 +const uint32_t TASMOTA_VERSION = 0x0E000004; // 14.0.0.4 #endif // _TASMOTA_VERSION_H_ diff --git a/tasmota/tasmota_support/settings.ino b/tasmota/tasmota_support/settings.ino index 030deb513..ba6850b9c 100644 --- a/tasmota/tasmota_support/settings.ino +++ b/tasmota/tasmota_support/settings.ino @@ -1813,6 +1813,9 @@ void SettingsDelta(void) { if (Settings->version < 0x0D040004) { // 13.4.0.4 Settings->power_lock = 0; } + if (Settings->version < 0x0E000004) { // 14.0.0.4 + Settings->tcp_baudrate = Settings->ex_tcp_baudrate / 4; + } Settings->version = TASMOTA_VERSION; SettingsSave(1); diff --git a/tasmota/tasmota_xdrv_driver/xdrv_41_tcp_bridge.ino b/tasmota/tasmota_xdrv_driver/xdrv_41_tcp_bridge.ino index b77480f09..f7af10175 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_41_tcp_bridge.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_41_tcp_bridge.ino @@ -147,10 +147,10 @@ void TCPInit(void) { } if (!Settings->tcp_baudrate) { - Settings->tcp_baudrate = 115200 / 1200; + Settings->tcp_baudrate = 115200 / 300; } TCPSerial = new TasmotaSerial(Pin(GPIO_TCP_RX), Pin(GPIO_TCP_TX), TasmotaGlobal.seriallog_level ? 1 : 2, 0, TCP_BRIDGE_BUF_SIZE); // set a receive buffer of 256 bytes - tcp_serial = TCPSerial->begin(Settings->tcp_baudrate * 1200, ConvertSerialConfig(0x7F & Settings->tcp_config)); + tcp_serial = TCPSerial->begin(Settings->tcp_baudrate * 300, ConvertSerialConfig(0x7F & Settings->tcp_config)); if (PinUsed(GPIO_TCP_TX_EN)) { TCPSerial->setTransmitEnablePin(Pin(GPIO_TCP_TX_EN)); AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_TCP "TCP Bridge EN is used on Pin %d"), Pin(GPIO_TCP_TX_EN)); @@ -212,16 +212,16 @@ void CmndTCPStart(void) { } void CmndTCPBaudrate(void) { - if ((XdrvMailbox.payload >= 1200) && (XdrvMailbox.payload <= 115200)) { - XdrvMailbox.payload /= 1200; // Make it a valid baudrate + if (XdrvMailbox.payload >= 300) { + XdrvMailbox.payload /= 300; // Make it a valid baudrate if (Settings->tcp_baudrate != XdrvMailbox.payload) { Settings->tcp_baudrate = XdrvMailbox.payload; - if (!TCPSerial->begin(Settings->tcp_baudrate * 1200, ConvertSerialConfig(0x7F & Settings->tcp_config))) { + if (!TCPSerial->begin(Settings->tcp_baudrate * 300, ConvertSerialConfig(0x7F & Settings->tcp_config))) { AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_TCP "failed reinit serial")); } // Reinitialize serial port with new baud rate } } - ResponseCmndNumber(Settings->tcp_baudrate * 1200); + ResponseCmndNumber(Settings->tcp_baudrate * 300); } void CmndTCPConfig(void) { @@ -229,7 +229,7 @@ void CmndTCPConfig(void) { uint8_t serial_config = ParseSerialConfig(XdrvMailbox.data); if ((serial_config >= 0) && (Settings->tcp_config != (0x80 | serial_config))) { Settings->tcp_config = 0x80 | serial_config; // default 0x00 should be 8N1 - if (!TCPSerial->begin(Settings->tcp_baudrate * 1200, ConvertSerialConfig(0x7F & Settings->tcp_config))) { + if (!TCPSerial->begin(Settings->tcp_baudrate * 300, ConvertSerialConfig(0x7F & Settings->tcp_config))) { AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_TCP "failed reinit serial")); } // Reinitialize serial port with new config }