@@ -625,31 +625,33 @@ class Hardware:
625625 ESPxx configuration data hardware class
626626 """
627627 # Bit mask for supported hardware
628- ESP82 = 0b00000001 # All ESP82xx
629- ESP32ex = 0b00000010 # ESP32 excluding S2-S3/C2-C6/P4
630- ESP82_32ex = 0b00000011 # ESP82xx + ESP32 excluding ESP32 S2-S3/C2-C6/P4
631- ESP32S3 = 0b00000100 # ESP32S3
632- ESP32S2 = 0b00001000 # ESP32S2
633- ESP32C3 = 0b00010000 # ESP32C3
634- ESP32C2 = 0b00100000 # ESP32C2
635- ESP32C6 = 0b01000000 # ESP32C6
636- ESP32P4 = 0b10000000 # ESP32P4
637- ESPnP4 = 0b01111111 # All ESP excluding ESP32P4
638- ESP32 = 0b11111110 # All ESP32
639- ESP = 0b11111111 # All ESP
628+ ESP82 = 0b000000001 # All ESP82xx
629+ ESP32ex = 0b000000010 # ESP32 excluding S2-S3/C2-C6/P4
630+ ESP82_32ex = 0b000000011 # ESP82xx + ESP32 excluding ESP32 S2-S3/C2-C6/P4
631+ ESP32S3 = 0b000000100 # ESP32S3
632+ ESP32S2 = 0b000001000 # ESP32S2
633+ ESP32C3 = 0b000010000 # ESP32C3
634+ ESP32C2 = 0b000100000 # ESP32C2
635+ ESP32C6 = 0b001000000 # ESP32C6
636+ ESP32P4 = 0b010000000 # ESP32P4
637+ ESP32C5 = 0b100000000 # ESP32C5
638+ ESPnP4 = 0b101111111 # All ESP excluding ESP32P4
639+ ESP32 = 0b111111110 # All ESP32
640+ ESP = 0b111111111 # All ESP
640641
641642 # Hardware bitmask and description
642643 config = (
643644 (ESP82 , "ESP82xx" ),
644- (ESP32ex , "ESP32 (excl ESP32-S2/ S3/C2/ C6/P4)" ),
645- (ESP82_32ex , "ESP82xx/32 (excl ESP32-S2/ S3/C2/ C6/P4)" ),
645+ (ESP32ex , "ESP32 (excl ESP32 S2- S3/C2- C6/P4)" ),
646+ (ESP82_32ex , "ESP82xx/32 (excl ESP32 S2- S3/C2- C6/P4)" ),
646647 (ESP32S3 , "ESP32-S3" ),
647648 (ESP32 , "ESP32" ),
648649 (ESP32P4 , "ESP32-P4" ),
649650 (ESP , "ESP82xx/32" )
650651 )
651652
652653 # Tasmota config_version values
654+ # Must match the number and order for Settings->config_version in Tasmota settings.ino
653655 config_versions = (
654656 ESP82 ,
655657 ESP32ex ,
@@ -658,17 +660,19 @@ class Hardware:
658660 ESP32C3 ,
659661 ESP32C2 ,
660662 ESP32C6 ,
661- ESP32P4
663+ ESP32P4 ,
664+ ESP32C5
662665 )
663666 config_versions_str = (
664667 "ESP82xx" ,
665- "ESP32 (not S2/S3/C2/C6/P4)" ,
668+ "ESP32 (not S2/S3/C2/C5/ C6/P4)" ,
666669 "ESP32-S3" ,
667670 "ESP32-S2" ,
668671 "ESP32-C3" ,
669672 "ESP32-C2" ,
670673 "ESP32-C6" ,
671674 "ESP32-P4" ,
675+ "ESP32-C5"
672676 )
673677
674678 def get_bitmask (self , config_version ):
@@ -3322,10 +3326,25 @@ def match(self, setting_hardware, config_version):
33223326 })
33233327
33243328# ======================================================================
3325- SETTING_15_0_1_5 = copy .deepcopy (SETTING_15_0_1_2 )
3329+ SETTING_15_0_1_3 = copy .deepcopy (SETTING_15_0_1_2 )
3330+ SETTING_15_0_1_3 .update ({
3331+ 'my_gp_esp32c5' : (HARDWARE .ESP32C5 ,
3332+ '<H' , 0x3AC , ([29 ], None , ('Management' , '"Gpio{} {}".format(#, $)' )) ),
3333+ })
3334+ SETTING_15_0_1_3 ['user_template_esp32' ][1 ].update ({
3335+ 'base_esp32c5' : (HARDWARE .ESP32C5 ,
3336+ 'B' , 0x71F , (None , None , ('Management' , '"Template {{\\ \" NAME\\ \" :\\ \" {}\\ \" ,\\ \" GPIO\\ \" :{},\\ \" FLAG\\ \" :{},\\ \" BASE\\ \" :{}}}".format(@["templatename"],@["user_template_esp32"]["gpio_esp32c5"],@["user_template_esp32"]["flag_esp32c5"],$)' )), ('$+1' ,'$-1' ) ),
3337+ 'gpio_esp32c5' : (HARDWARE .ESP32C5 ,
3338+ '<H' , 0x3FC , ([29 ], None , ('Management' , None )), ('1 if $==65504 else $' ,'65504 if $==1 else $' )),
3339+ 'flag_esp32c5' : (HARDWARE .ESP32C5 ,
3340+ '<H' , 0x3FC + (2 * 29 ),(None , None , ('Management' , None )) ),
3341+ })
3342+ # ======================================================================
3343+ SETTING_15_0_1_5 = copy .deepcopy (SETTING_15_0_1_3 )
33263344# ======================================================================
33273345SETTINGS = [
33283346 (0x0F000105 ,0x1000 , SETTING_15_0_1_5 ),
3347+ (0x0F000103 ,0x1000 , SETTING_15_0_1_3 ),
33293348 (0x0F000102 ,0x1000 , SETTING_15_0_1_2 ),
33303349 (0x0E060001 ,0x1000 , SETTING_14_6_0_1 ),
33313350 (0x0E040104 ,0x1000 , SETTING_14_4_1_4 ),
0 commit comments