mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-29 21:56:35 +00:00
parent
6853e88116
commit
f3a5dafd04
7
.github/workflows/Tasmota_build_devel.yml
vendored
7
.github/workflows/Tasmota_build_devel.yml
vendored
@ -92,12 +92,14 @@ jobs:
|
||||
- tasmota32c2-safeboot
|
||||
- tasmota32c3-safeboot
|
||||
- tasmota32c3ser-safeboot
|
||||
- tasmota32c5-safeboot
|
||||
- tasmota32c5ser-safeboot
|
||||
- tasmota32c6-safeboot
|
||||
- tasmota32c6ser-safeboot
|
||||
- tasmota32s2-safeboot
|
||||
- tasmota32s2cdc-safeboot
|
||||
- tasmota32s3-safeboot
|
||||
- tasmota32s3ser-safeboot
|
||||
- tasmota32c6-safeboot
|
||||
- tasmota32c6ser-safeboot
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
@ -188,6 +190,7 @@ jobs:
|
||||
- tasmota32-lvgl
|
||||
- tasmota32c2
|
||||
- tasmota32c3
|
||||
- tasmota32c5
|
||||
- tasmota32c6
|
||||
- tasmota32s2
|
||||
- tasmota32s2cdc
|
||||
|
7
.github/workflows/Tasmota_build_master.yml
vendored
7
.github/workflows/Tasmota_build_master.yml
vendored
@ -26,12 +26,14 @@ jobs:
|
||||
- tasmota32c2-safeboot
|
||||
- tasmota32c3-safeboot
|
||||
- tasmota32c3ser-safeboot
|
||||
- tasmota32c5-safeboot
|
||||
- tasmota32c5ser-safeboot
|
||||
- tasmota32c6-safeboot
|
||||
- tasmota32c6ser-safeboot
|
||||
- tasmota32s2-safeboot
|
||||
- tasmota32s2cdc-safeboot
|
||||
- tasmota32s3-safeboot
|
||||
- tasmota32s3ser-safeboot
|
||||
- tasmota32c6-safeboot
|
||||
- tasmota32c6ser-safeboot
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
@ -115,6 +117,7 @@ jobs:
|
||||
- tasmota32-lvgl
|
||||
- tasmota32c2
|
||||
- tasmota32c3
|
||||
- tasmota32c5
|
||||
- tasmota32c6
|
||||
- tasmota32s2
|
||||
- tasmota32s2cdc
|
||||
|
2
.github/workflows/build_all_the_things.yml
vendored
2
.github/workflows/build_all_the_things.yml
vendored
@ -94,6 +94,7 @@ jobs:
|
||||
- tasmota32solo1
|
||||
- tasmota32c2
|
||||
- tasmota32c3
|
||||
- tasmota32c5
|
||||
- tasmota32c6
|
||||
- tasmota32s2
|
||||
- tasmota32s2cdc
|
||||
@ -111,6 +112,7 @@ jobs:
|
||||
- tasmota32s3-safeboot
|
||||
- tasmota32c2-safeboot
|
||||
- tasmota32c3-safeboot
|
||||
- tasmota32c5-safeboot
|
||||
- tasmota32c6-safeboot
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
44
boards/esp32c5.json
Normal file
44
boards/esp32c5.json
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
"build": {
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DARDUINO_USB_MODE=1 -DESP32_4M -DESP32C5 -DUSE_USB_CDC_CONSOLE",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
"mcu": "esp32c5",
|
||||
"variant": "esp32c5",
|
||||
"partitions": "partitions/esp32_partition_app2880k_fs320k.csv"
|
||||
},
|
||||
"connectivity": [
|
||||
"wifi",
|
||||
"bluetooth"
|
||||
],
|
||||
"debug": {
|
||||
"openocd_target": "esp32c5.cfg"
|
||||
},
|
||||
"frameworks": [
|
||||
"arduino",
|
||||
"espidf"
|
||||
],
|
||||
"name": "Espressif Generic ESP32-C5 >= 4M Flash, Tasmota 2880k Code/OTA, 320k FS",
|
||||
"upload": {
|
||||
"arduino": {
|
||||
"flash_extra_images": [
|
||||
[
|
||||
"0x10000",
|
||||
"tasmota32c5-safeboot.bin"
|
||||
]
|
||||
]
|
||||
},
|
||||
"flash_size": "4MB",
|
||||
"maximum_ram_size": 327680,
|
||||
"maximum_size": 4194304,
|
||||
"require_upload_port": true,
|
||||
"speed": 2000000
|
||||
},
|
||||
"download": {
|
||||
"speed": 2000000
|
||||
},
|
||||
"url": "https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/index.html",
|
||||
"vendor": "Espressif"
|
||||
}
|
44
boards/esp32c5ser.json
Normal file
44
boards/esp32c5ser.json
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
"build": {
|
||||
"core": "esp32",
|
||||
"extra_flags": "-DARDUINO_TASMOTA -DESP32_4M -DESP32C5",
|
||||
"f_cpu": "240000000L",
|
||||
"f_flash": "80000000L",
|
||||
"flash_mode": "qio",
|
||||
"mcu": "esp32c5",
|
||||
"variant": "esp32c5",
|
||||
"partitions": "partitions/esp32_partition_app2880k_fs320k.csv"
|
||||
},
|
||||
"connectivity": [
|
||||
"wifi",
|
||||
"bluetooth"
|
||||
],
|
||||
"debug": {
|
||||
"openocd_target": "esp32c5.cfg"
|
||||
},
|
||||
"frameworks": [
|
||||
"arduino",
|
||||
"espidf"
|
||||
],
|
||||
"name": "Espressif Generic ESP32-C5 >= 4M Flash, Tasmota 2880k Code/OTA, 320k FS",
|
||||
"upload": {
|
||||
"arduino": {
|
||||
"flash_extra_images": [
|
||||
[
|
||||
"0x10000",
|
||||
"tasmota32c5ser-safeboot.bin"
|
||||
]
|
||||
]
|
||||
},
|
||||
"flash_size": "4MB",
|
||||
"maximum_ram_size": 327680,
|
||||
"maximum_size": 4194304,
|
||||
"require_upload_port": true,
|
||||
"speed": 460800
|
||||
},
|
||||
"download": {
|
||||
"speed": 230400
|
||||
},
|
||||
"url": "https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/index.html",
|
||||
"vendor": "Espressif"
|
||||
}
|
@ -61,7 +61,7 @@
|
||||
// SPI_MOSI_DLEN_REG is not defined anymore in esp32s3
|
||||
#define SPI_MOSI_DLEN_REG(x) SPI_MS_DLEN_REG(x)
|
||||
|
||||
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#define SPI_HOST SPI1_HOST
|
||||
#define HSPI_HOST SPI2_HOST
|
||||
#define VSPI_HOST SPI2_HOST /* No SPI3_host on C2/C6 */
|
||||
|
@ -29,12 +29,12 @@ License along with NeoPixel. If not, see
|
||||
|
||||
#include "driver/spi_master.h"
|
||||
|
||||
#if (defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C6)) && !defined(HSPI_HOST)
|
||||
#if (defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6)) && !defined(HSPI_HOST)
|
||||
// HSPI_HOST depreciated in C3
|
||||
#define HSPI_HOST SPI2_HOST
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
class Esp32VspiBus
|
||||
{
|
||||
public:
|
||||
@ -52,7 +52,7 @@ public:
|
||||
const static int ParallelBits = 1;
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
class Esp32Vspi2BitBus
|
||||
{
|
||||
public:
|
||||
@ -70,7 +70,7 @@ public:
|
||||
const static int ParallelBits = 2;
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
class Esp32Vspi4BitBus
|
||||
{
|
||||
public:
|
||||
@ -174,7 +174,7 @@ public:
|
||||
// If pins aren't specified, initialize bus with just the default SCK and MOSI pins for the SPI peripheral (no SS, no >1-bit pins)
|
||||
void Initialize()
|
||||
{
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
if (T_SPIBUS::SpiHostDevice == VSPI_HOST)
|
||||
{
|
||||
Initialize(SCK, -1, MOSI, -1, -1, -1);
|
||||
@ -277,7 +277,7 @@ private:
|
||||
int8_t _ssPin;
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
// Clock Speed and Default Definitions for DotStarEsp32DmaVspi
|
||||
typedef DotStarEsp32DmaSpiMethod<SpiSpeed40Mhz, Esp32VspiBus> DotStarEsp32DmaVspi40MhzMethod;
|
||||
typedef DotStarEsp32DmaSpiMethod<SpiSpeed20Mhz, Esp32VspiBus> DotStarEsp32DmaVspi20MhzMethod;
|
||||
@ -303,7 +303,7 @@ typedef DotStarEsp32DmaSpiMethod<SpiSpeedHz, Esp32HspiBus> DotStarEsp32DmaHspiHz
|
||||
|
||||
typedef DotStarEsp32DmaHspi10MhzMethod DotStarEsp32DmaHspiMethod;
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
// Clock Speed and Default Definitions for DotStarEsp32DmaVspi2Bit
|
||||
typedef DotStarEsp32DmaSpiMethod<SpiSpeed40Mhz,Esp32Vspi2BitBus> DotStarEsp32DmaVspi2Bit40MhzMethod;
|
||||
typedef DotStarEsp32DmaSpiMethod<SpiSpeed20Mhz,Esp32Vspi2BitBus> DotStarEsp32DmaVspi2Bit20MhzMethod;
|
||||
@ -329,7 +329,7 @@ typedef DotStarEsp32DmaSpiMethod<SpiSpeedHz,Esp32Hspi2BitBus> DotStarEsp32DmaHsp
|
||||
|
||||
typedef DotStarEsp32DmaHspi2Bit10MhzMethod DotStarEsp32DmaHspi2BitMethod;
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
// Clock Speed and Default Definitions for DotStarEsp32DmaVspi4Bit
|
||||
typedef DotStarEsp32DmaSpiMethod<SpiSpeed40Mhz,Esp32Vspi4BitBus> DotStarEsp32DmaVspi4Bit40MhzMethod;
|
||||
typedef DotStarEsp32DmaSpiMethod<SpiSpeed20Mhz,Esp32Vspi4BitBus> DotStarEsp32DmaVspi4Bit20MhzMethod;
|
||||
|
@ -12,7 +12,7 @@ enum NeoBusChannel
|
||||
NeoBusChannel_0,
|
||||
NeoBusChannel_1,
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
NeoBusChannel_2,
|
||||
|
||||
|
@ -32,7 +32,7 @@ License along with NeoPixel. If not, see
|
||||
#include "NeoBusChannel.h"
|
||||
#include "NeoEsp32RmtMethod.h"
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C2)
|
||||
#if defined(ARDUINO_ARCH_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5)
|
||||
|
||||
|
||||
// translate NeoPixelBuffer into RMT buffer
|
||||
|
@ -29,7 +29,7 @@ License along with NeoPixel. If not, see
|
||||
|
||||
#pragma once
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C2)
|
||||
#if defined(ARDUINO_ARCH_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5)
|
||||
|
||||
/* General Reference documentation for the APIs used in this implementation
|
||||
LOW LEVEL: (what is actually used)
|
||||
@ -454,7 +454,7 @@ public:
|
||||
const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_3;
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
class NeoEsp32RmtChannel4
|
||||
{
|
||||
|
@ -399,7 +399,7 @@ public:
|
||||
rmt_channel_handle_t RmtChannelNumber = NULL;
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C6) // C6 only 2 RMT channels ??
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6) // C5 & C6 only 2 RMT channels
|
||||
class NeoEsp32RmtChannel2
|
||||
{
|
||||
public:
|
||||
@ -417,7 +417,7 @@ protected:
|
||||
rmt_channel_handle_t RmtChannelNumber = NULL;
|
||||
};
|
||||
#endif // !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
class NeoEsp32RmtChannel4
|
||||
{
|
||||
@ -634,7 +634,7 @@ typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel1> NeoEs
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1800KbpsMethod;
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1400KbpsMethod;
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2811Method;
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2812xMethod;
|
||||
@ -741,7 +741,7 @@ typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1800KbpsInvertedMethod;
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1400KbpsInvertedMethod;
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2811InvertedMethod;
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2812xInvertedMethod;
|
||||
@ -815,13 +815,13 @@ typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChanne
|
||||
#endif // !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
|
||||
#if defined(NEOPIXEL_ESP32_RMT_DEFAULT) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if defined(NEOPIXEL_ESP32_RMT_DEFAULT) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
// Normally I2s method is the default, defining NEOPIXEL_ESP32_RMT_DEFAULT
|
||||
// will switch to use RMT as the default method
|
||||
// The ESP32S2 & ESP32C3 will always defualt to RMT
|
||||
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
// RMT channel 1 method is the default method for Esp32S2 & Esp32C3
|
||||
typedef NeoEsp32Rmt1Ws2812xMethod NeoWs2813Method;
|
||||
|
@ -30,7 +30,7 @@ License along with NeoPixel. If not, see
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
|
||||
#if (defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C6)) && !defined(HSPI_HOST)
|
||||
#if (defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6)) && !defined(HSPI_HOST)
|
||||
// HSPI_HOST depreciated in C3
|
||||
#define HSPI_HOST SPI2_HOST
|
||||
#endif
|
||||
|
@ -29,7 +29,7 @@ License along with NeoPixel. If not, see
|
||||
#include <Arduino.h>
|
||||
|
||||
// ESP32C3 I2S is not supported yet
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(ARDUINO_ARCH_ESP8266)
|
||||
#include "soc/gpio_periph.h"
|
||||
#endif
|
||||
|
@ -29,7 +29,7 @@ License along with NeoPixel. If not, see
|
||||
#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
|
||||
|
||||
// ESP32C3 I2S is not supported yet
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP8266)
|
||||
#include <eagle_soc.h>
|
||||
|
@ -112,7 +112,7 @@ enum uColorType { uCOLOR_BW, uCOLOR_COLOR };
|
||||
#undef GPIO_SET_SLOW
|
||||
#undef GPIO_CLR_SLOW
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#define GPIO_CLR(A) GPIO.out_w1tc.val = (1 << A)
|
||||
#define GPIO_SET(A) GPIO.out_w1ts.val = (1 << A)
|
||||
#else // plain ESP32
|
||||
|
@ -52,7 +52,7 @@ enum LoggingLevels {LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_D
|
||||
const uint8_t MAX_PWMS = 16; // ESP32: 16 ledc PWM channels in total - TODO for now
|
||||
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
const uint8_t MAX_PWMS = 8; // ESP32S2/S3: 8 ledc PWM channels in total
|
||||
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
const uint8_t MAX_PWMS = 6; // ESP32C2/C3/C6: 6 ledc PWM channels in total
|
||||
#else
|
||||
const uint8_t MAX_PWMS = 5; // Unknown - revert to 5 PWM max
|
||||
|
@ -16,7 +16,7 @@ jobs:
|
||||
# https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-docker-image.html
|
||||
# for details.
|
||||
idf_ver: ["release-v4.4", "release-v5.1"]
|
||||
idf_target: ["esp32", "esp32s3", "esp32c2", "esp32c3", "esp32c6"]
|
||||
idf_target: ["esp32", "esp32s3", "esp32c2", "esp32c3", "esp32c5", "esp32c6"]
|
||||
example:
|
||||
- Advanced/NimBLE_Client
|
||||
- Advanced/NimBLE_Server
|
||||
|
@ -30,6 +30,7 @@ idf_component_register(
|
||||
"esp32s3"
|
||||
"esp32c2"
|
||||
"esp32c3"
|
||||
"esp32c5"
|
||||
"esp32c6"
|
||||
"esp32h2"
|
||||
INCLUDE_DIRS
|
||||
|
@ -10,7 +10,7 @@ env.Append(CXXFLAGS=["-Wno-volatile"])
|
||||
env.Append(CFLAGS=["-Wno-discarded-qualifiers", "-Wno-implicit-function-declaration", "-Wno-incompatible-pointer-types"])
|
||||
|
||||
# Remove build flags which are not valid for risc-v
|
||||
if mcu in ("esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32p4"):
|
||||
if mcu in ("esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32h2", "esp32p4"):
|
||||
try:
|
||||
build_flags.pop(build_flags.index("-mno-target-align"))
|
||||
except:
|
||||
|
@ -7,16 +7,7 @@ import subprocess
|
||||
|
||||
def firm_metrics(source, target, env):
|
||||
print()
|
||||
if env["PIOPLATFORM"] == "espressif32":
|
||||
try:
|
||||
import tasmota_metrics
|
||||
map_file = str(tasmotapiolib.get_source_map_path(env).resolve())
|
||||
subprocess.run([
|
||||
env.subst("$PYTHONEXE"), "-m", "tasmota_metrics", map_file
|
||||
], check=False)
|
||||
except:
|
||||
pass
|
||||
elif env["PIOPLATFORM"] == "espressif8266":
|
||||
if env["PIOPLATFORM"] == "espressif8266":
|
||||
map_file = join(env.subst("$BUILD_DIR")) + os.sep + "firmware.map"
|
||||
with open(map_file,'r', encoding='utf-8') as f:
|
||||
phrase = "_text_end = ABSOLUTE (.)"
|
||||
|
@ -54,6 +54,7 @@ monitor_filters = esp32_exception_decoder
|
||||
lib_ignore = ${esp32_defaults.lib_ignore}
|
||||
ESPmDNS
|
||||
LinkedList
|
||||
LittleFS
|
||||
ESP Mail Client
|
||||
IRremoteESP8266
|
||||
NeoPixelBus
|
||||
@ -69,6 +70,8 @@ lib_ignore = ${esp32_defaults.lib_ignore}
|
||||
SD
|
||||
SD_MMC
|
||||
UdpListener
|
||||
esp_wireguard_tasmota
|
||||
IniFile
|
||||
Berry
|
||||
Berry mapping to C
|
||||
Berry Tasmota mapping
|
||||
|
@ -211,6 +211,15 @@ build_flags = ${env:tasmota32_base.build_flags}
|
||||
lib_extra_dirs = lib/libesp32, lib/libesp32_div, lib/lib_basic, lib/lib_i2c, lib/lib_div, lib/lib_ssl
|
||||
lib_ignore = Micro-RTSP
|
||||
|
||||
[env:tasmota32c5-mi32]
|
||||
extends = env:tasmota32_base
|
||||
board = esp32c5
|
||||
build_flags = ${env:tasmota32_base.build_flags}
|
||||
-DFIRMWARE_BLUETOOTH
|
||||
-DUSE_MI_EXT_GUI
|
||||
-DCONFIG_BT_NIMBLE_NVS_PERSIST=y
|
||||
-DOTA_URL='""'
|
||||
|
||||
[env:tasmota32c6-mi32]
|
||||
extends = env:tasmota32_base
|
||||
board = esp32c6
|
||||
|
@ -130,6 +130,62 @@ build_flags = ${env:tasmota32_base.build_flags}
|
||||
lib_extra_dirs = lib/lib_ssl, lib/libesp32
|
||||
lib_ignore = ${safeboot_flags.lib_ignore}
|
||||
|
||||
[env:tasmota32c5-safeboot]
|
||||
extends = env:tasmota32_base
|
||||
board = esp32c5
|
||||
board_build.app_partition_name = safeboot
|
||||
build_flags = ${env:tasmota32_base.build_flags}
|
||||
-DFIRMWARE_SAFEBOOT
|
||||
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c5-safeboot.bin"'
|
||||
lib_extra_dirs = lib/lib_ssl, lib/libesp32
|
||||
lib_ignore = ${safeboot_flags.lib_ignore}
|
||||
custom_sdkconfig =
|
||||
'# CONFIG_BT_ENABLED is not set'
|
||||
'# CONFIG_BT_NIMBLE_ENABLED is not set'
|
||||
'# CONFIG_BT_CONTROLLER_ENABLED is not set'
|
||||
CONFIG_BT_CONTROLLER_DISABLED=y
|
||||
'# CONFIG_LWIP_IP_FORWARD is not set'
|
||||
'# CONFIG_LWIP_IPV4_NAPT is not set'
|
||||
'# CONFIG_LWIP_IPV4_NAPT_PORTMAP is not set'
|
||||
'# CONFIG_ETH_ENABLED is not set'
|
||||
'# CONFIG_ETH_USE_SPI_ETHERNET is not set'
|
||||
'# CONFIG_ETH_TRANSMIT_MUTEX is not set'
|
||||
'# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set'
|
||||
'# CONFIG_ETH_SPI_ETHERNET_W5500 is not set'
|
||||
'# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set'
|
||||
'# CONFIG_LWIP_PPP_SUPPORT is not set'
|
||||
custom_component_remove = espressif/esp_hosted
|
||||
espressif/esp_wifi_remote
|
||||
espressif/esp_modem
|
||||
|
||||
[env:tasmota32c5ser-safeboot]
|
||||
extends = env:tasmota32_base
|
||||
board = esp32c5ser
|
||||
board_build.app_partition_name = safeboot
|
||||
build_flags = ${env:tasmota32_base.build_flags}
|
||||
-DFIRMWARE_SAFEBOOT
|
||||
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c5ser-safeboot.bin"'
|
||||
lib_extra_dirs = lib/lib_ssl, lib/libesp32
|
||||
lib_ignore = ${safeboot_flags.lib_ignore}
|
||||
custom_sdkconfig =
|
||||
'# CONFIG_BT_ENABLED is not set'
|
||||
'# CONFIG_BT_NIMBLE_ENABLED is not set'
|
||||
'# CONFIG_BT_CONTROLLER_ENABLED is not set'
|
||||
CONFIG_BT_CONTROLLER_DISABLED=y
|
||||
'# CONFIG_LWIP_IP_FORWARD is not set'
|
||||
'# CONFIG_LWIP_IPV4_NAPT is not set'
|
||||
'# CONFIG_LWIP_IPV4_NAPT_PORTMAP is not set'
|
||||
'# CONFIG_ETH_ENABLED is not set'
|
||||
'# CONFIG_ETH_USE_SPI_ETHERNET is not set'
|
||||
'# CONFIG_ETH_TRANSMIT_MUTEX is not set'
|
||||
'# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set'
|
||||
'# CONFIG_ETH_SPI_ETHERNET_W5500 is not set'
|
||||
'# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set'
|
||||
'# CONFIG_LWIP_PPP_SUPPORT is not set'
|
||||
custom_component_remove = espressif/esp_hosted
|
||||
espressif/esp_wifi_remote
|
||||
espressif/esp_modem
|
||||
|
||||
[env:tasmota32c6-safeboot]
|
||||
extends = env:tasmota32_base
|
||||
board = esp32c6
|
||||
@ -224,7 +280,14 @@ build_flags = ${env:tasmota32_base.build_flags}
|
||||
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c3.bin"'
|
||||
lib_ignore = ${env:tasmota32_base.lib_ignore}
|
||||
Micro-RTSP
|
||||
|
||||
[env:tasmota32c5]
|
||||
extends = env:tasmota32_base
|
||||
board = esp32c5
|
||||
build_flags = ${env:tasmota32_base.build_flags}
|
||||
-DFIRMWARE_TASMOTA32
|
||||
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c5.bin"'
|
||||
lib_ignore = ${env:tasmota32_base.lib_ignore}
|
||||
Micro-RTSP
|
||||
[env:tasmota32c6]
|
||||
extends = env:tasmota32_base
|
||||
board = esp32c6
|
||||
|
@ -63,7 +63,7 @@ const uint8_t MAX_PWMS_LEGACY = 5; // Max number of PWM channels in fir
|
||||
const uint8_t MAX_PWMS = 16; // ESP32: 16 ledc PWM channels in total - TODO for now
|
||||
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
const uint8_t MAX_PWMS = 8; // ESP32S2/S3: 8 ledc PWM channels in total
|
||||
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
const uint8_t MAX_PWMS = 6; // ESP32C2/C3/C6: 6 ledc PWM channels in total
|
||||
#else
|
||||
const uint8_t MAX_PWMS = 5; // Unknown - revert to 5 PWM max
|
||||
@ -135,6 +135,8 @@ const uint8_t MAX_SWITCHES_TXT = 8; // Max number of switches user text
|
||||
#ifdef ESP32
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3
|
||||
const uint8_t MAX_ADCS = 5; // Max number of ESP32-C3 ADC pins (ADC2 pins are unusable with Wifi enabled)
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5
|
||||
const uint8_t MAX_ADCS = 6; // Max number of ESP32 ADC pins (ADC2 pins are unusable with Wifi enabled)
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
const uint8_t MAX_ADCS = 7; // Max number of ESP32 ADC pins (ADC2 pins are unusable with Wifi enabled)
|
||||
#else // ESP32
|
||||
|
@ -148,15 +148,15 @@ const char WIFI_HOSTNAME[] = WIFI_DEFAULT_HOSTNAME; // Override by user_confi
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* Start ESP32-C3/C6 specific parameters - disable features not present in ESP32-C3/C6
|
||||
* Start ESP32-C3/C5/C6 specific parameters - disable features not present in ESP32-C3/C5/C6
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 // ESP32-C3/C6
|
||||
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 // ESP32-C3/C5/C6
|
||||
//#ifdef USE_ETHERNET
|
||||
//#undef USE_ETHERNET // ESP32-C3/C6 does not support ethernet
|
||||
//#undef USE_ETHERNET // ESP32-C3/C5/C6 does not support ethernet
|
||||
//#endif
|
||||
|
||||
#endif // CONFIG_IDF_TARGET_ESP32C3/C6
|
||||
#endif // CONFIG_IDF_TARGET_ESP32C3/C5/C6
|
||||
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* End ESP32-C3 specific parameters
|
||||
|
@ -1412,6 +1412,19 @@ const char PINS_WEMOS[] PROGMEM = "AOAOAOAOAOIOIOIOIOIOIOFLFLFLFLFLFLFLIORXTX";
|
||||
// 0 1 2 3 4 5 6 7 8 9101112131415161718192021
|
||||
const char PINS_WEMOS[] PROGMEM = "AOAOAOAOAOAOIOIOIOIOIOFLFLFLFLFLFLFLIOIORXTX";
|
||||
|
||||
//#elif CONFIG_IDF_TARGET_ESP32C5
|
||||
|
||||
/* ****************************************
|
||||
* ESP32C5
|
||||
* ****************************************/
|
||||
//#define MAX_GPIO_PIN 27 // Number of supported GPIO
|
||||
//#define MIN_FLASH_PINS 0 // Number of flash chip pins unusable for configuration (GPIO24 to 30)
|
||||
//#define MAX_USER_PINS 27 // MAX_GPIO_PIN - MIN_FLASH_PINS
|
||||
//#define WEMOS_MODULE 0 // Wemos module
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 91011121314151617181920212223242526
|
||||
//const char PINS_WEMOS[] PROGMEM = "AOAOAOAOAOAOAOIOIOIOIOIOIOIOIOIOTXRXIOIOIOIOIOIOFLFLFL";
|
||||
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
|
||||
/* ****************************************
|
||||
@ -3054,6 +3067,70 @@ const mytmplt kModules[] PROGMEM = {
|
||||
Known templates
|
||||
\*********************************************************************************************/
|
||||
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5
|
||||
/********************************************************************************************\
|
||||
* ESP32-C5 Module templates
|
||||
\********************************************************************************************/
|
||||
|
||||
#define USER_MODULE 255
|
||||
|
||||
// Supported hardware modules
|
||||
enum SupportedModulesESP32C5 {
|
||||
WEMOS, // not really correct, a placeholder for now
|
||||
MAXMODULE };
|
||||
|
||||
// Default module settings
|
||||
const uint8_t kModuleNiceList[] PROGMEM = {
|
||||
WEMOS,
|
||||
};
|
||||
|
||||
// !!! Update this list in the same order as kModuleNiceList !!!
|
||||
const char kModuleNames[] PROGMEM =
|
||||
"ESP32C5|"
|
||||
;
|
||||
|
||||
// !!! Update this list in the same order as SupportedModulesESP32C5 !!!
|
||||
const mytmplt kModules[] PROGMEM = {
|
||||
{ // Generic ESP32C5 device
|
||||
AGPIO(GPIO_USER), // 0 IO GPIO0, ADC1_CH0, LP_GPIO0
|
||||
AGPIO(GPIO_USER), // 1 IO GPIO1, ADC1_CH1, LP_GPIO1
|
||||
AGPIO(GPIO_USER), // 2 IO GPIO2, ADC1_CH2, LP_GPIO2
|
||||
AGPIO(GPIO_USER), // 3 IO GPIO3, ADC1_CH3, LP_GPIO3
|
||||
AGPIO(GPIO_USER), // 4 IO GPIO4, ADC1_CH4, LP_GPIO4, Strapping
|
||||
AGPIO(GPIO_USER), // 5 IO GPIO5, ADC1_CH5, LP_GPIO5, Strapping
|
||||
AGPIO(GPIO_USER), // 6 IO GPIO6, ADC1_CH6, LP_GPIO6
|
||||
AGPIO(GPIO_USER), // 7 IO GPIO7, LP_GPIO7
|
||||
AGPIO(GPIO_USER), // 8 IO GPIO8, Strapping
|
||||
AGPIO(GPIO_USER), // 9 IO GPIO9, Strapping
|
||||
AGPIO(GPIO_USER), // 10 IO GPIO10 (QFN40 only)
|
||||
AGPIO(GPIO_USER), // 11 IO GPIO11 (QFN40 only)
|
||||
AGPIO(GPIO_USER), // 12 IO GPIO12, USB-JTAG
|
||||
AGPIO(GPIO_USER), // 13 IO GPIO13, USB-JTAG
|
||||
AGPIO(GPIO_USER), // 14 IO GPIO14 (QFN32 only)
|
||||
AGPIO(GPIO_USER), // 15 IO GPIO15, Strapping
|
||||
AGPIO(GPIO_USER), // 16 IO TXD0 GPIO16, U0TXD
|
||||
AGPIO(GPIO_USER), // 17 IO RXD0 GPIO17, U0RXD
|
||||
AGPIO(GPIO_USER), // 18 IO GPIO18, SDIO_CMD
|
||||
AGPIO(GPIO_USER), // 19 IO GPIO19, SDIO_CLK
|
||||
AGPIO(GPIO_USER), // 20 IO GPIO20, SDIO_DATA0
|
||||
AGPIO(GPIO_USER), // 21 IO GPIO21, SDIO_DATA1
|
||||
AGPIO(GPIO_USER), // 22 IO GPIO22, SDIO_DATA2
|
||||
AGPIO(GPIO_USER), // 23 IO GPIO23, SDIO_DATA3
|
||||
0, // 24 IO GPIO24, SPICS1, PSRAM
|
||||
0, // 25 IO GPIO25, SPIQ
|
||||
0, // 26 IO GPIO26, SPIWP - Free if flash DIO/DOUT
|
||||
0, // 27 IO GPIO27, SPIVDD
|
||||
0, // 28 IO GPIO28, SPIHD - Free if flash DIO/DOUT
|
||||
0, // 29 IO GPIO29, SPICLK
|
||||
0, // 30 IO GPIO30, SPID
|
||||
0 // Flag
|
||||
},
|
||||
};
|
||||
|
||||
/*********************************************************************************************\
|
||||
Known templates
|
||||
\*********************************************************************************************/
|
||||
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
/********************************************************************************************\
|
||||
* ESP32-C6 Module templates
|
||||
|
@ -208,11 +208,12 @@ WiFiUDP PortUdp; // UDP Syslog and Alexa
|
||||
#ifdef ESP32
|
||||
/*
|
||||
#if CONFIG_IDF_TARGET_ESP32C3 || // support USB via HWCDC using JTAG interface
|
||||
CONFIG_IDF_TARGET_ESP32C5 || // support USB via HWCDC using JTAG interface
|
||||
CONFIG_IDF_TARGET_ESP32C6 || // support USB via HWCDC using JTAG interface
|
||||
CONFIG_IDF_TARGET_ESP32S2 || // support USB via USBCDC
|
||||
CONFIG_IDF_TARGET_ESP32S3 // support USB via HWCDC using JTAG interface or USBCDC
|
||||
*/
|
||||
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
|
||||
//#if CONFIG_TINYUSB_CDC_ENABLED // This define is not recognized here so use USE_USB_CDC_CONSOLE
|
||||
#ifdef USE_USB_CDC_CONSOLE
|
||||
@ -493,7 +494,7 @@ void setup(void) {
|
||||
}
|
||||
|
||||
#ifdef ESP32
|
||||
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#ifdef USE_USB_CDC_CONSOLE
|
||||
|
||||
bool is_connected_to_USB = false;
|
||||
|
@ -1714,7 +1714,7 @@ void TemplateGpios(myio *gp)
|
||||
j++;
|
||||
#endif // ESP8266
|
||||
#ifdef ESP32
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
dest[i] = src[i];
|
||||
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
if (22 == i) { j = 33; } // skip 22-32
|
||||
@ -2203,7 +2203,7 @@ void SetSerial(uint32_t baudrate, uint32_t serial_config) {
|
||||
|
||||
void ClaimSerial(void) {
|
||||
#ifdef ESP32
|
||||
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#ifdef USE_USB_CDC_CONSOLE
|
||||
if (!tasconsole_serial) {
|
||||
return; // USB console does not use serial
|
||||
|
@ -2137,7 +2137,7 @@ void CmndTemplate(void)
|
||||
if (8 == i) { j = 12; }
|
||||
#endif // ESP8266
|
||||
#ifdef ESP32
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
// No change
|
||||
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
// if (22 == i) { j = 33; } // TODO 20230821 verify
|
||||
|
@ -261,7 +261,7 @@ void CrashDump(void)
|
||||
}
|
||||
ResponseJsonEnd();
|
||||
}
|
||||
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
|
||||
extern "C" {
|
||||
// esp-idf 3.x
|
||||
|
@ -31,6 +31,8 @@ const static char kWifiPhyMode[] PROGMEM = "low rate|11b|11g|HT20|HT40|HE20"; //
|
||||
#define ESP32_ARCH "esp32c2"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C3
|
||||
#define ESP32_ARCH "esp32c3"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5
|
||||
#define ESP32_ARCH "esp32c5"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
#define ESP32_ARCH "esp32c6"
|
||||
#elif CONFIG_IDF_TARGET_ESP32H2
|
||||
@ -51,6 +53,8 @@ const static char kWifiPhyMode[] PROGMEM = "low rate|11b|11g|HT20|HT40|HE20"; //
|
||||
#include "esp32c2/rom/rtc.h"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C3 // ESP32-C3
|
||||
#include "esp32c3/rom/rtc.h"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5 // ESP32-C5
|
||||
#include "esp32c5/rom/rtc.h"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6 // ESP32-C6
|
||||
#include "esp32c6/rom/rtc.h"
|
||||
#elif CONFIG_IDF_TARGET_ESP32H2 // ESP32-H2
|
||||
@ -240,6 +244,9 @@ extern "C" {
|
||||
#elif CONFIG_IDF_TARGET_ESP32C3 // ESP32-C3
|
||||
#include "esp32c3/rom/spi_flash.h"
|
||||
#define ESP_FLASH_IMAGE_BASE 0x0000 // Esp32c3 is located at 0x0000
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5 // ESP32-C5
|
||||
#include "esp32c5/rom/spi_flash.h"
|
||||
#define ESP_FLASH_IMAGE_BASE 0x2000 // Esp32c5 is located at 0x2000
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6 // ESP32-C6
|
||||
#include "esp32c6/rom/spi_flash.h"
|
||||
#define ESP_FLASH_IMAGE_BASE 0x0000 // Esp32c6 is located at 0x0000
|
||||
@ -585,7 +592,7 @@ extern "C" {
|
||||
// `psramFound()` can return true even if no PSRAM is actually installed
|
||||
// This new version also checks `esp_spiram_is_initialized` to know if the PSRAM is initialized
|
||||
bool FoundPSRAM(void) {
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || DISABLE_PSRAMCHECK || CORE32SOLO1
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || DISABLE_PSRAMCHECK || CORE32SOLO1
|
||||
return psramFound();
|
||||
#else
|
||||
return psramFound() && esp_psram_is_initialized();
|
||||
@ -712,6 +719,7 @@ typedef enum {
|
||||
CHIP_ESP32S3 = 9, //!< ESP32-S3
|
||||
CHIP_ESP32C3 = 5, //!< ESP32-C3
|
||||
CHIP_ESP32C2 = 12, //!< ESP32-C2
|
||||
CHIP_ESP32C5 = 23, //!< ESP32-C5
|
||||
CHIP_ESP32C6 = 13, //!< ESP32-C6
|
||||
CHIP_ESP32H2 = 16, //!< ESP32-H2
|
||||
CHIP_POSIX_LINUX = 999, //!< The code is running on POSIX/Linux simulator
|
||||
@ -874,6 +882,21 @@ typedef struct {
|
||||
#endif // CONFIG_IDF_TARGET_ESP32C2
|
||||
return F("ESP32-C2");
|
||||
}
|
||||
case 23: { // ESP32-C5
|
||||
/*
|
||||
ESP32-C5 Series
|
||||
- Ultra-low-power SoC with 32-bit RISC-V single-core microprocessor
|
||||
- 2.4 and 5 GHz dual-band Wi-Fi 6 (802.11ax), Bluetooth® 5 (LE), Zigbee and Thread (802.15.4)
|
||||
- 27 or 19 GPIOs, rich set of peripherals
|
||||
*/
|
||||
#ifdef CONFIG_IDF_TARGET_ESP32C5
|
||||
switch (pkg_version) {
|
||||
case 0: return F("ESP32-C5");
|
||||
case 1: return F("ESP32-C5FH4");
|
||||
}
|
||||
#endif // CONFIG_IDF_TARGET_ESP32C5
|
||||
return F("ESP32-C5");
|
||||
}
|
||||
case 7: // ESP32-C6(beta)
|
||||
case 13: { // ESP32-C6
|
||||
/*
|
||||
|
@ -154,7 +154,7 @@ const char HTTP_SCRIPT_TEMPLATE2[] PROGMEM =
|
||||
"}";
|
||||
#endif // ESP8266
|
||||
#ifdef ESP32
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
const char HTTP_SCRIPT_TEMPLATE2[] PROGMEM =
|
||||
"for(i=0;i<" STR(MAX_USER_PINS) ";i++){"
|
||||
"sk(g[i],i);" // Set GPIO
|
||||
@ -2144,14 +2144,14 @@ void HandleTemplateConfiguration(void) {
|
||||
WSContentBegin(200, CT_PLAIN);
|
||||
WSContentSend_P(PSTR("%s}1"), AnyModuleName(module).c_str()); // NAME: Generic
|
||||
for (uint32_t i = 0; i < nitems(template_gp.io); i++) { // 17,148,29,149,7,255,255,255,138,255,139,255,255
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
// ESP32C2/C3/C6 we always send all GPIOs, Flash are just hidden
|
||||
WSContentSend_P(PSTR("%s%d"), (i>0)?",":"", template_gp.io[i]);
|
||||
#else
|
||||
if (!FlashPin(i)) {
|
||||
WSContentSend_P(PSTR("%s%d"), (i>0)?",":"", template_gp.io[i]);
|
||||
}
|
||||
#endif // CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#endif // CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
}
|
||||
WSContentSend_P(PSTR("}1%d}1%d"), flag, Settings->user_template_base); // FLAG: 1 BASE: 17
|
||||
WSContentEnd();
|
||||
@ -2192,7 +2192,7 @@ void HandleTemplateConfiguration(void) {
|
||||
"<hr/>"));
|
||||
WSContentSend_P(HTTP_TABLE100); // "<table style='width:100%%'>"
|
||||
for (uint32_t i = 0; i < MAX_GPIO_PIN; i++) {
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
// ESP32C2/C3/C6 all gpios are in the template, flash are hidden
|
||||
bool hidden = FlashPin(i);
|
||||
WSContentSend_P(PSTR("<tr%s><td><b><font color='#%06x'>" D_GPIO "%d</font></b></td><td%s><select id='g%d' onchange='ot(%d,this.value)'></select></td>"),
|
||||
@ -2205,7 +2205,7 @@ void HandleTemplateConfiguration(void) {
|
||||
RedPin(i) ? WebColor(COL_TEXT_WARNING) : WebColor(COL_TEXT), i, (0==i) ? PSTR(" style='width:146px'") : "", i, i);
|
||||
WSContentSend_P(PSTR("<td style='width:54px'><select id='h%d'></select></td></tr>"), i);
|
||||
}
|
||||
#endif // CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#endif // CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
}
|
||||
WSContentSend_P(PSTR("</table>"));
|
||||
|
||||
@ -2270,7 +2270,7 @@ void TemplateSaveSettings(void) {
|
||||
j++;
|
||||
#endif // ESP8266
|
||||
#ifdef ESP32
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
snprintf_P(command, sizeof(command), PSTR("%s%s%d"), command, (i>0)?",":"", WebGetGpioArg(i));
|
||||
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
if (22 == i) { j = 33; } // skip 22-32
|
||||
|
@ -32,7 +32,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef ESP32 // ESP32 family only. Use define USE_HM10 for ESP8266 support
|
||||
#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#ifdef USE_BLE_ESP32
|
||||
|
||||
/*
|
||||
|
@ -128,7 +128,7 @@ print("".join(pin))
|
||||
#define USE_EQ3_ESP32
|
||||
#endif
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#ifdef USE_EQ3_ESP32
|
||||
#ifdef ESP32 // ESP32 only. Use define USE_HM10 for ESP8266 support
|
||||
#ifdef USE_BLE_ESP32
|
||||
|
@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
#ifdef ESP32
|
||||
#ifndef ESP32C5 // todo: remove when ESP32C5 support is added
|
||||
#ifdef USE_ESP32_TWAI
|
||||
#if SOC_TWAI_SUPPORTED
|
||||
/*********************************************************************************************\
|
||||
@ -442,4 +443,5 @@ bool Xdrv91(uint32_t function) {
|
||||
|
||||
#endif // SOC_TWAI_SUPPORTED
|
||||
#endif // USE_ESP32_TWAI
|
||||
#endif // ESP32C5
|
||||
#endif // ESP32
|
@ -52,7 +52,7 @@
|
||||
|
||||
// for testing of BLE_ESP32, we remove xsns_52_ibeacon.ino completely, and instead add this modified xsns_52_ibeacon_BLE_ESP32.ino
|
||||
// in the future this may be more fine-grained, e.g. to allow hm17 for this, and BLE-ESP32 for other
|
||||
#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 ||CONFIG_IDF_TARGET_ESP32S3
|
||||
#ifdef USE_BLE_ESP32
|
||||
|
||||
#define XSNS_52 52
|
||||
|
@ -50,7 +50,7 @@
|
||||
*/
|
||||
#ifndef USE_BLE_ESP32
|
||||
#ifdef ESP32 // ESP32 only. Use define USE_HM10 for ESP8266 support
|
||||
#if defined CONFIG_IDF_TARGET_ESP32 || defined CONFIG_IDF_TARGET_ESP32C3 || defined CONFIG_IDF_TARGET_ESP32C2 || defined CONFIG_IDF_TARGET_ESP32C6 || defined CONFIG_IDF_TARGET_ESP32S3
|
||||
#if defined CONFIG_IDF_TARGET_ESP32 || defined CONFIG_IDF_TARGET_ESP32C3 || defined CONFIG_IDF_TARGET_ESP32C2 || defined CONFIG_IDF_TARGET_ESP32C5 || defined CONFIG_IDF_TARGET_ESP32C6 || defined CONFIG_IDF_TARGET_ESP32S3
|
||||
|
||||
#ifdef USE_MI_ESP32
|
||||
|
||||
@ -1316,7 +1316,7 @@ bool MI32StartConnectionTask(){
|
||||
}
|
||||
|
||||
void MI32ConnectionTask(void *pvParameters){
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) || !defined(CONFIG_IDF_TARGET_ESP32C6) //needs more testing ...
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) || !defined(CONFIG_IDF_TARGET_ESP32C5) || !defined(CONFIG_IDF_TARGET_ESP32C6) //needs more testing ...
|
||||
// NimBLEDevice::setOwnAddrType(BLE_OWN_ADDR_RANDOM,false); //seems to be important for i.e. xbox controller, hopefully not breaking other things
|
||||
#endif //CONFIG_IDF_TARGET_ESP32C3
|
||||
MI32.conCtx->error = MI32_CONN_NO_ERROR;
|
||||
|
@ -82,7 +82,7 @@
|
||||
#ifdef USE_BLE_ESP32
|
||||
|
||||
#ifdef ESP32 // ESP32 family only. Use define USE_HM10 for ESP8266 support
|
||||
#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
|
||||
#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
|
||||
|
||||
#ifdef USE_MI_ESP32
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user