Added ESP32S3

This commit is contained in:
Gunnar Skjold
2023-12-10 17:27:16 +01:00
parent f3805ad111
commit 194905237b
7 changed files with 53 additions and 22 deletions

View File

@@ -151,6 +151,8 @@ private:
return F("ESP32-C3");
case 71:
return F("ESP32-C3-DevKitM-1");
case 80:
return F("ESP32-S3");
}
#if defined(ESP8266)
return F("ESP8266");

File diff suppressed because one or more lines are too long

View File

@@ -58,3 +58,8 @@
<option value={200}>{boardtype(chip, 200)}</option>
</optgroup>
{/if}
{#if chip == 'esp32s3'}
<optgroup label="Generic hardware">
<option value={80}>{boardtype(chip, 80)}</option>
</optgroup>
{/if}

View File

@@ -110,6 +110,8 @@ export function boardtype(c, b) {
return "Generic ESP32-C3";
case 71:
return "ESP32-C3-DevKitM-1";
case 80:
return "Generic ESP32-S3";
}
}

View File

@@ -6,6 +6,7 @@
switch (chip) {
case 'esp8266': gpioMax = 16; break;
case 'esp32s2': gpioMax = 44; break;
case 'esp32s3': gpioMax = 46; break;
case 'esp32c3': gpioMax = 19; break;
}
}
@@ -23,14 +24,14 @@
<option value={9}>UART1</option>
<option value={16}>UART2</option>
{/if}
{#if chip == 'esp32s2'}
{#if chip == 'esp32s2' || chip == 'esp32s3' }
<option value={18}>UART1</option>
{/if}
{#each {length: gpioMax+1} as _, i}
{#if i > 3
&& !(chip == 'esp32' && (i == 9 || i == 16))
&& !(chip == 'esp32s2' && i == 18)
&& !((chip == 'esp32s2' || chip == 'esp32s3') && i == 18)
&& !(chip == 'esp8266' && (i == 3 || i == 113))
}
<option value={i}>GPIO{i}</option>

View File

@@ -253,11 +253,19 @@ void AmsWebServer::sysinfoJson() {
hostname = "ams-"+chipIdStr;
}
IPAddress localIp = ch->getIP();
IPAddress subnet = ch->getSubnetMask();
IPAddress gateway = ch->getGateway();
IPAddress dns1 = ch->getDns(0);
IPAddress dns2 = ch->getDns(1);
IPAddress localIp;
IPAddress subnet;
IPAddress gateway;
IPAddress dns1;
IPAddress dns2;
if(ch != NULL) {
localIp = ch->getIP();
subnet = ch->getSubnetMask();
gateway = ch->getGateway();
dns1 = ch->getDns(0);
dns2 = ch->getDns(1);
}
char macStr[18] = { 0 };
char apMacStr[18] = { 0 };
@@ -298,6 +306,8 @@ void AmsWebServer::sysinfoJson() {
FirmwareVersion::VersionString,
#if defined(CONFIG_IDF_TARGET_ESP32S2)
"esp32s2",
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
"esp32s3",
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
"esp32c3",
#elif defined(CONFIG_FREERTOS_UNICORE)
@@ -1115,6 +1125,14 @@ void AmsWebServer::handleSave() {
default:
success = false;
}
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
switch(boardType) {
case 80: // Generic ESP32-S3
meterConfig.rxPin = hanPin > 0 ? hanPin : 18;
break;
default:
success = false;
}
#elif defined(ESP32)
switch(boardType) {
case 241: // LilyGO T-ETH-POE
@@ -1264,6 +1282,7 @@ void AmsWebServer::handleSave() {
case 51: // Wemos S2 mini
case 70: // Generic ESP32-C3
case 71: // ESP32-C3-DevKitM-1
case 80: // Generic ESP32-S3
network.sleep = 1; // Modem sleep
break;
case 4: // Pow-U UART0
@@ -1701,6 +1720,8 @@ void AmsWebServer::upgradeFromUrl(String url, String nextVersion) {
String chipType = F("esp8266");
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
String chipType = F("esp32s2");
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
String chipType = F("esp32s3");
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
String chipType = F("esp32c3");
#elif defined(ESP32)

View File

@@ -10,7 +10,7 @@
#include "LNG.h"
#include "LNG2.h"
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3)
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3)
#include <driver/uart.h>
#endif
@@ -493,7 +493,7 @@ void PassiveMeterCommunicator::setupHanPort(uint32_t baud, uint8_t parityOrdinal
if(pin == 16) {
hwSerial = &Serial2;
}
#elif defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3)
#elif defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3)
hwSerial = &Serial1;
#endif
#endif
@@ -530,7 +530,7 @@ void PassiveMeterCommunicator::setupHanPort(uint32_t baud, uint8_t parityOrdinal
if(meterConfig.bufferSize < 4) meterConfig.bufferSize = 4; // 64 bytes (1) is default for software serial, 256 bytes (4) for hardware
hwSerial->setRxBufferSize(64 * meterConfig.bufferSize);
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3)
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3)
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)
@@ -550,7 +550,7 @@ void PassiveMeterCommunicator::setupHanPort(uint32_t baud, uint8_t parityOrdinal
#endif
// Prevent pullup on TX pin if not uart0
#if defined(CONFIG_IDF_TARGET_ESP32S2)
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32S3)
pinMode(17, INPUT);
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
pinMode(7, INPUT);