diff --git a/CHANGELOG.md b/CHANGELOG.md index 6aa433d80..b4f18abeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file. - Function ``AddLog`` to provide logging for up to 128 (LOGSZ) characters to save stack space - Commands ``ChannelRemap``, ``MultiPWM``, ``AlexaCTRange``, ``PowerOnFade``, ``PWMCT``, ``WhiteBlend``, ``VirtualCT`` as synonyms for ``SetOption37, 68, 82, 91, 92, 105 and 106`` respectively - Commands ``ZbNameKey``, ``ZbDeviceTopic``, ``ZbNoPrefix``, ``ZbEndpointSuffix``, ``ZbNoAutoBind``, ``ZbNameTopic`` as synonyms for ``SetOption83, 89, 100, 101, 110 and 112`` respectively +- Support for ESP32 ``Module 5`` Wireless Tag Eth01 (#9496) ### Changed - Maximum chars in ``AddLog_P`` logging restored from 128 to 700 (MAX_LOGSZ) to solve broken error messages @@ -25,7 +26,7 @@ All notable changes to this project will be documented in this file. - Compile time option ``USE_MQTT_TLS_DROP_OLD_FINGERPRINT`` to drop old (less secure) TLS fingerprint - Command ``SetOption40 0..250`` to disable button functionality if activated for over 0.1 second re-introduced - Support for SM2135 current selection using GPIO ``SM2135 DAT`` index (#10634) -- Basic support for ESP32 M5stack core2 16MB binary tasmota32-core2.bin (#10635) +- Support for ESP32 ``Module 7`` M5stack core2 16MB binary tasmota32-core2.bin (#10635) - Support for Sugar Valley NeoPool Controller by Norbert Richter (#10637) - Rule trigger string comparisons for EndsWith ``$>``, StartsWith ``$<`` and Contains ``$|`` (#10538) - Support for TOF10120 time of flight sensor by Cyril Pawelko (#10190) @@ -42,7 +43,7 @@ All notable changes to this project will be documented in this file. ## [9.2.0.2] 20210105 ### Added -- Basic support for ESP32 Odroid Go 16MB binary tasmota32-odroidgo.bin (#8630) +- Support for ESP32 ``Module 3`` Odroid Go 16MB binary tasmota32-odroidgo.bin (#8630) - Command ``CTRange`` to specify the visible CT range the bulb is capable of (#10311) - Command ``VirtualCT`` to simulate or fine tune CT bulbs with 3,4,5 channels (#10311) - Command ``SetOption118 1`` to move ZbReceived from JSON message and into the subtopic replacing "SENSOR" default (#10353) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 66388ab4d..7e528d190 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -87,8 +87,9 @@ The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota - Support for Sugar Valley NeoPool Controller by Norbert Richter [#10637](https://github.com/arendst/Tasmota/issues/10637) - Support rotary encoder on Shelly Dimmer [#10407](https://github.com/arendst/Tasmota/issues/10407#issuecomment-756240920) - Support character `#` to be replaced by `space`-character in command ``Publish`` topic [#10258](https://github.com/arendst/Tasmota/issues/10258) -- Basic support for ESP32 Odroid Go 16MB binary tasmota32-odroidgo.bin [#8630](https://github.com/arendst/Tasmota/issues/8630) -- Basic support for ESP32 M5stack core2 16MB binary tasmota32-core2.bin [#10635](https://github.com/arendst/Tasmota/issues/10635) +- Support for ESP32 ``Module 3`` Odroid Go 16MB binary tasmota32-odroidgo.bin [#8630](https://github.com/arendst/Tasmota/issues/8630) +- Support for ESP32 ``Module 5`` Wireless Tag Eth01 [#9496](https://github.com/arendst/Tasmota/issues/9496) +- Support for ESP32 ``Module 7`` M5stack core2 16MB binary tasmota32-core2.bin [#10635](https://github.com/arendst/Tasmota/issues/10635) - Rule trigger string comparisons for EndsWith ``$>``, StartsWith ``$<`` and Contains ``$|`` [#10538](https://github.com/arendst/Tasmota/issues/10538) - SPI display driver SSD1331 Color oled by Jeroen Vermeulen [#10376](https://github.com/arendst/Tasmota/issues/10376) - Compile time option ``USE_MQTT_TLS_DROP_OLD_FINGERPRINT`` to drop old (less secure) TLS fingerprint diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h index 7ba3f4237..b88604ed3 100644 --- a/tasmota/my_user_config.h +++ b/tasmota/my_user_config.h @@ -849,6 +849,10 @@ #ifdef ESP32 //#define USE_ETHERNET // Add support for ethernet (Currently fixed for Olimex ESP32-PoE) +// #define USE_WT32_ETH01 // Add support for Wireless-Tag WT32-ETH01 +// #define ETH_TYPE 0 // [EthType] 0 = ETH_PHY_LAN8720, 1 = ETH_PHY_TLK110, 2 = ETH_PHY_IP101 +// #define ETH_ADDR 1 // [EthAddress] 0 = PHY0 .. 31 = PHY31 +// #define ETH_CLKMODE 0 // [EthClockMode] 0 = ETH_CLOCK_GPIO0_IN, 1 = ETH_CLOCK_GPIO0_OUT, 2 = ETH_CLOCK_GPIO16_OUT, 3 = ETH_CLOCK_GPIO17_OUT // Olimex ESP32-PoE #define ETH_TYPE 0 // [EthType] 0 = ETH_PHY_LAN8720, 1 = ETH_PHY_TLK110, 2 = ETH_PHY_IP101 #define ETH_ADDR 0 // [EthAddress] 0 = PHY0 .. 31 = PHY31 @@ -856,10 +860,6 @@ // wESP32-PoE // #define ETH_TYPE 0 // [EthType] 0 = ETH_PHY_LAN8720, 1 = ETH_PHY_TLK110, 2 = ETH_PHY_IP101 // #define ETH_ADDR 0 // [EthAddress] 0 = PHY0 .. 31 = PHY31 -// #define ETH_CLKMODE 0 // [EthClockMode] 0 = ETH_CLOCK_GPIO0_IN, 1 = ETH_CLOCK_GPIO0_OUT, 2 = ETH_CLOCK_GPIO16_OUT, 3 = ETH_CLOCK_GPIO17_OUT - // Wireless-Tag WT32-ETH01 -// #define ETH_TYPE 0 // [EthType] 0 = ETH_PHY_LAN8720, 1 = ETH_PHY_TLK110, 2 = ETH_PHY_IP101 -// #define ETH_ADDR 1 // [EthAddress] 0 = PHY0 .. 31 = PHY31 // #define ETH_CLKMODE 0 // [EthClockMode] 0 = ETH_CLOCK_GPIO0_IN, 1 = ETH_CLOCK_GPIO0_OUT, 2 = ETH_CLOCK_GPIO16_OUT, 3 = ETH_CLOCK_GPIO17_OUT #define USE_ADC // Add support for ADC on GPIO32 to GPIO39 diff --git a/tasmota/tasmota_template.h b/tasmota/tasmota_template.h index eff968de1..26a5b4686 100644 --- a/tasmota/tasmota_template.h +++ b/tasmota/tasmota_template.h @@ -2359,7 +2359,9 @@ const char kModuleNames[] PROGMEM = "Odroid Go|" #endif // USE_ODROID_GO // "ESP32-Solo|" -// "WT32-Eth01|" +#ifdef USE_WT32_ETH01 + "WT32-Eth01|" +#endif // USE_WT32_ETH01 // "TTGO Watch|" #ifdef USE_M5STACK_CORE2 "M5Stack Core2|" @@ -2376,7 +2378,9 @@ const uint8_t kModuleNiceList[] PROGMEM = { ODROID_GO, #endif // USE_ODROID_GO // ESP32_SOLO, -// WT32_ETH01, +#ifdef USE_WT32_ETH01 + WT32_ETH01, +#endif // USE_WT32_ETH01 // TTGO_WATCH, #ifdef USE_M5STACK_CORE2 M5STACK_CORE2, @@ -2518,6 +2522,51 @@ const mytmplt kModules[] PROGMEM = 0 // Flag }, #endif // USE_ODROID_GO +#ifdef USE_WT32_ETH01 + { // WT32_ETH01 - (ESP32) + 0, // 0 (I)O GPIO0, Ethernet EMAC_REF_CLK + AGPIO(GPIO_USER), // 1 IO TXD0 GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2 + AGPIO(GPIO_USER), // 2 IO GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0, SD_DATA0 + AGPIO(GPIO_USER), // 3 IO RXD0 GPIO3, U0RXD, CLK_OUT2 + AGPIO(GPIO_USER), // 4 IO GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1, SD_DATA1, EMAC_TX_ER + AGPIO(GPIO_USER), // 5 IO GPIO5, RXD Led green + // 6 IO GPIO6, Flash CLK + // 7 IO GPIO7, Flash D0 + // 8 IO GPIO8, Flash D1 + 0, // 9 IO GPIO9, Flash D2, U1RXD + 0, // 10 IO GPIO10, Flash D3, U1TXD + // 11 IO GPIO11, Flash CMD + AGPIO(GPIO_USER), // 12 (I)O GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2, SD_DATA2, EMAC_TXD3 (If driven High, flash voltage (VDD_SDIO) is 1.8V not default 3.3V. Has internal pull-down, so unconnected = Low = 3.3V. May prevent flashing and/or booting if 3.3V flash is connected and pulled high. See ESP32 datasheet for more details.) + 0, // 13 IO GPIO13, Ethernet EMAC_RX_ER + AGPIO(GPIO_USER), // 14 IO GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, HS2_CLK, SD_CLK, EMAC_TXD2 + AGPIO(GPIO_USER), // 15 (I)O GPIO15, ADC2_CH3, TOUCH3, MTDO, HSPICS0, RTC_GPIO13, HS2_CMD, SD_CMD, EMAC_RXD3 (If driven Low, silences boot messages from normal boot. Has internal pull-up, so unconnected = High = normal output.) + AGPIO(GPIO_OUTPUT_HI), // 16 IO GPIO16, Ethernet OSC_ENA + AGPIO(GPIO_LEDLNK_INV), // 17 IO GPIO17, Network link led (green) + AGPIO(GPIO_ETH_PHY_MDIO), // 18 IO GPIO18, Ethernet MDIO + 0, // 19 IO GPIO19, Ethernet TXD0 + 0, // 20 + 0, // 21 IO GPIO21, Ethernet EMAC_TX_EN + 0, // 22 IO LED GPIO22, Ethernet EMAC_TXD1 + AGPIO(GPIO_ETH_PHY_MDC), // 23 IO GPIO23, Ethernet MDC + 0, // 24 + 0, // 25 IO GPIO25, Ethernet EMAC_RXD0 + 0, // 26 IO GPIO26, Ethernet EMAC_RXD1 + 0, // 27 IO GPIO27, Ethernet EMAC_RX_DV + 0, // 28 + 0, // 29 + 0, // 30 + 0, // 31 + AGPIO(GPIO_USER), // 32 IO GPIO32, CFG + AGPIO(GPIO_USER), // 33 IO GPIO33, 485_EN + 0, // 34 I NO PULLUP GPIO34, ADC1_CH6, RTC_GPIO4 + AGPIO(GPIO_USER), // 35 I NO PULLUP GPIO35, ADC1_CH7, RTC_GPIO5 + AGPIO(GPIO_USER), // 36 I NO PULLUP GPIO36, SENSOR_VP, ADC_H, ADC1_CH0, RTC_GPIO0 + 0, // 37 NO PULLUP + 0, // 38 NO PULLUP + AGPIO(GPIO_USER), // 39 I NO PULLUP GPIO39, SENSOR_VN, ADC1_CH3, ADC_H, RTC_GPIO3 + 0 // Flag + }, +#endif // USE_WT32_ETH01 #ifdef USE_M5STACK_CORE2 { // M5STACK CORE2 - (ESP32) AGPIO(GPIO_USER), // 0 (I)O GPIO0, SPKR_LRCK diff --git a/tasmota/xdrv_82_esp32_ethernet.ino b/tasmota/xdrv_82_esp32_ethernet.ino index a14a84116..1eae96991 100644 --- a/tasmota/xdrv_82_esp32_ethernet.ino +++ b/tasmota/xdrv_82_esp32_ethernet.ino @@ -120,6 +120,12 @@ void EthernetInit(void) { return; } + if (WT32_ETH01 == TasmotaGlobal.module_type) { + Settings.eth_address = 1; // EthAddress + Settings.eth_type = ETH_PHY_LAN8720; // EthType + Settings.eth_clk_mode = ETH_CLOCK_GPIO0_IN; // EthClockMode + } + // snprintf_P(Eth.hostname, sizeof(Eth.hostname), PSTR("%s_eth"), TasmotaGlobal.hostname); strlcpy(eth_hostname, TasmotaGlobal.hostname, sizeof(eth_hostname) -5); // Make sure there is room for "_eth" strcat(eth_hostname, "_eth");