From 43c53838adb7f7444d14ce066188c61aeab04c62 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Tue, 19 Apr 2022 19:17:04 +0200 Subject: [PATCH] Add SDCard SDIO support --- tasmota/language/af_AF.h | 8 +++++- tasmota/language/bg_BG.h | 8 +++++- tasmota/language/cs_CZ.h | 8 +++++- tasmota/language/de_DE.h | 8 +++++- tasmota/language/el_GR.h | 8 +++++- tasmota/language/en_GB.h | 8 +++++- tasmota/language/es_ES.h | 8 +++++- tasmota/language/fr_FR.h | 8 +++++- tasmota/language/fy_NL.h | 8 +++++- tasmota/language/he_HE.h | 8 +++++- tasmota/language/hu_HU.h | 8 +++++- tasmota/language/it_IT.h | 8 +++++- tasmota/language/ko_KO.h | 8 +++++- tasmota/language/nl_NL.h | 8 +++++- tasmota/language/pl_PL.h | 8 +++++- tasmota/language/pt_BR.h | 8 +++++- tasmota/language/pt_PT.h | 8 +++++- tasmota/language/ro_RO.h | 8 +++++- tasmota/language/ru_RU.h | 8 +++++- tasmota/language/sk_SK.h | 8 +++++- tasmota/language/sv_SE.h | 8 +++++- tasmota/language/tr_TR.h | 8 +++++- tasmota/language/uk_UA.h | 8 +++++- tasmota/language/vi_VN.h | 8 +++++- tasmota/language/zh_CN.h | 8 +++++- tasmota/language/zh_TW.h | 8 +++++- tasmota/tasmota.ino | 1 + tasmota/tasmota_template.h | 18 ++++++++++++- tasmota/xdrv_50_filesystem.ino | 47 ++++++++++++++++++++++++---------- 29 files changed, 234 insertions(+), 40 deletions(-) diff --git a/tasmota/language/af_AF.h b/tasmota/language/af_AF.h index afa923e37..6c7934f76 100644 --- a/tasmota/language/af_AF.h +++ b/tasmota/language/af_AF.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h index f9b0510f8..1e6270266 100644 --- a/tasmota/language/bg_BG.h +++ b/tasmota/language/bg_BG.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Подсветка" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Подсветка" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h index d6206ada9..941dd24a2 100644 --- a/tasmota/language/cs_CZ.h +++ b/tasmota/language/cs_CZ.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h index bfc3e881c..9218e9537 100644 --- a/tasmota/language/de_DE.h +++ b/tasmota/language/de_DE.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h index f4134304c..67481f5a2 100644 --- a/tasmota/language/el_GR.h +++ b/tasmota/language/el_GR.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h index 73e6157df..afa9b3a8f 100644 --- a/tasmota/language/en_GB.h +++ b/tasmota/language/en_GB.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h index 608830d3e..b93135578 100644 --- a/tasmota/language/es_ES.h +++ b/tasmota/language/es_ES.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h index 3c1f9f777..5638233b1 100644 --- a/tasmota/language/fr_FR.h +++ b/tasmota/language/fr_FR.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "RétroÉcl" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "RétroÉcl" #define D_SENSOR_PMS5003_TX "PMS5003 TX" #define D_SENSOR_PMS5003_RX "PMS5003 RX" #define D_SENSOR_SDS0X1_RX "SDS0X1 RX" diff --git a/tasmota/language/fy_NL.h b/tasmota/language/fy_NL.h index 9b06fd901..fc97068d3 100644 --- a/tasmota/language/fy_NL.h +++ b/tasmota/language/fy_NL.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h index 10843edb3..dc7be8aa0 100644 --- a/tasmota/language/he_HE.h +++ b/tasmota/language/he_HE.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h index 888b36a1b..04b069358 100644 --- a/tasmota/language/hu_HU.h +++ b/tasmota/language/hu_HU.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Háttérfény" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Háttérfény" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h index d4dba3ffe..2178abc12 100644 --- a/tasmota/language/it_IT.h +++ b/tasmota/language/it_IT.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI - MISO" #define D_SENSOR_SPI_MOSI "SPI - MOSI" #define D_SENSOR_SPI_CLK "SPI - CLK" -#define D_SENSOR_BACKLIGHT "Retroilluminazione" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Retroilluminazione" #define D_SENSOR_PMS5003_TX "PMS5003 - TX" #define D_SENSOR_PMS5003_RX "PMS5003 - RX" #define D_SENSOR_SDS0X1_RX "SDS0X1 - RX" diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h index 0eb35b087..2716feea4 100644 --- a/tasmota/language/ko_KO.h +++ b/tasmota/language/ko_KO.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h index 917421d50..a7a1e383a 100644 --- a/tasmota/language/nl_NL.h +++ b/tasmota/language/nl_NL.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h index 05f8c5b28..6bec6b159 100644 --- a/tasmota/language/pl_PL.h +++ b/tasmota/language/pl_PL.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Podświetlanie" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Podświetlanie" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h index 5f3e8480d..15b574f64 100644 --- a/tasmota/language/pt_BR.h +++ b/tasmota/language/pt_BR.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Luz de fundo" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Luz de fundo" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h index 3e33bdcf5..b664cf3cf 100644 --- a/tasmota/language/pt_PT.h +++ b/tasmota/language/pt_PT.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Luz fundo" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Luz fundo" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h index 1ad94086f..cb709f185 100644 --- a/tasmota/language/ro_RO.h +++ b/tasmota/language/ro_RO.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h index 9e343f93d..e45388a22 100644 --- a/tasmota/language/ru_RU.h +++ b/tasmota/language/ru_RU.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h index 004ca8418..d376dc26c 100644 --- a/tasmota/language/sk_SK.h +++ b/tasmota/language/sk_SK.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h index c4b582b2a..dbd138ff5 100644 --- a/tasmota/language/sv_SE.h +++ b/tasmota/language/sv_SE.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h index da289d3a0..bcb341725 100644 --- a/tasmota/language/tr_TR.h +++ b/tasmota/language/tr_TR.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h index 9b1fe8c0b..b13930560 100644 --- a/tasmota/language/uk_UA.h +++ b/tasmota/language/uk_UA.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "OLED Light" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "OLED Light" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h index d77894125..0f4e5f563 100644 --- a/tasmota/language/vi_VN.h +++ b/tasmota/language/vi_VN.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h index f6f07708c..89ad958ca 100644 --- a/tasmota/language/zh_CN.h +++ b/tasmota/language/zh_CN.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h index ec3008a5c..767df5857 100644 --- a/tasmota/language/zh_TW.h +++ b/tasmota/language/zh_TW.h @@ -651,7 +651,13 @@ #define D_SENSOR_SPI_MISO "SPI MISO" #define D_SENSOR_SPI_MOSI "SPI MOSI" #define D_SENSOR_SPI_CLK "SPI CLK" -#define D_SENSOR_BACKLIGHT "Backlight" +#define D_SENSOR_SDIO_CMD "SDIO CMD" +#define D_SENSOR_SDIO_CLK "SDIO CLK" +#define D_SENSOR_SDIO_D0 "SDIO D0" +#define D_SENSOR_SDIO_D1 "SDIO D1" +#define D_SENSOR_SDIO_D2 "SDIO D2" +#define D_SENSOR_SDIO_D3 "SDIO D3" +#define D_SENSOR_BACKLIGHT "Backlight" #define D_SENSOR_PMS5003_TX "PMS5003 Tx" #define D_SENSOR_PMS5003_RX "PMS5003 Rx" #define D_SENSOR_SDS0X1_RX "SDS0X1 Rx" diff --git a/tasmota/tasmota.ino b/tasmota/tasmota.ino index f9233885d..bad041105 100644 --- a/tasmota/tasmota.ino +++ b/tasmota/tasmota.ino @@ -75,6 +75,7 @@ #include #ifdef USE_SDCARD #include +#include #endif // USE_SDCARD #include "FFat.h" #include "FS.h" diff --git a/tasmota/tasmota_template.h b/tasmota/tasmota_template.h index dac7e3416..b576027b3 100644 --- a/tasmota/tasmota_template.h +++ b/tasmota/tasmota_template.h @@ -186,6 +186,7 @@ enum UserSelectablePins { GPIO_ADE7880_IRQ, // ADE7880 IRQ GPIO_RESET, // Generic reset GPIO_MS01, // Sonoff MS01 Moisture Sensor 1wire interface + GPIO_SDIO_CMD, GPIO_SDIO_CLK, GPIO_SDIO_D0, GPIO_SDIO_D1, GPIO_SDIO_D2, GPIO_SDIO_D3, // SD Card SDIO interface, including 1-bit and 4-bit modes GPIO_SENSOR_END }; enum ProgramSelectablePins { @@ -411,6 +412,12 @@ const char kSensorNames[] PROGMEM = D_SENSOR_ADE7880_IRQ "|" D_SENSOR_RESET "|" D_SENSOR_MS01 "|" + D_SENSOR_SDIO_CMD "|" + D_SENSOR_SDIO_CLK "|" + D_SENSOR_SDIO_D0 "|" + D_SENSOR_SDIO_D1 "|" + D_SENSOR_SDIO_D2 "|" + D_SENSOR_SDIO_D3 "|" ; const char kSensorNamesFixed[] PROGMEM = @@ -516,13 +523,22 @@ const uint16_t kGpioNiceList[] PROGMEM = { AGPIO(GPIO_RC522_RST), // RC522 Rfid Reset #endif #ifdef USE_SDCARD - AGPIO(GPIO_SDCARD_CS), + AGPIO(GPIO_SDCARD_CS), // SDCard in SPI mode #endif // USE_SDCARD #ifdef USE_MCP2515 AGPIO(GPIO_MCP2515_CS), #endif // USE_MCP2515 #endif // USE_SPI +#if defined(USE_SDCARD) && defined(ESP32) + AGPIO(GPIO_SDIO_CMD), // SDCard in SDIO mode + AGPIO(GPIO_SDIO_CLK), + AGPIO(GPIO_SDIO_D0), + AGPIO(GPIO_SDIO_D1), // (opt) if in 4-bit mode, DAT1-3 are needed + AGPIO(GPIO_SDIO_D2), + AGPIO(GPIO_SDIO_D3), +#endif // USE_SDCARD + AGPIO(GPIO_SSPI_MISO), // Software SPI Master Input Client Output AGPIO(GPIO_SSPI_MOSI), // Software SPI Master Output Client Input AGPIO(GPIO_SSPI_SCLK), // Software SPI Serial Clock diff --git a/tasmota/xdrv_50_filesystem.ino b/tasmota/xdrv_50_filesystem.ino index 4e8cfbf04..3e5a86080 100644 --- a/tasmota/xdrv_50_filesystem.ino +++ b/tasmota/xdrv_50_filesystem.ino @@ -41,10 +41,6 @@ ufsfree free size in kB #define XDRV_50 50 -#ifndef SDCARD_CS_PIN -#define SDCARD_CS_PIN 4 -#endif - #define UFS_TNONE 0 #define UFS_TSDC 1 #define UFS_TFAT 2 @@ -141,17 +137,14 @@ void UfsInit(void) { #ifdef USE_SDCARD void UfsCheckSDCardInit(void) { - if (TasmotaGlobal.spi_enabled) { - int8_t cs = SDCARD_CS_PIN; - if (PinUsed(GPIO_SDCARD_CS)) { - cs = Pin(GPIO_SDCARD_CS); - } - + // Try SPI mode first + // SPI mode requires SDCARD_CS to be configured + if (TasmotaGlobal.spi_enabled && PinUsed(GPIO_SDCARD_CS)) { + int8_t cs = Pin(GPIO_SDCARD_CS); #ifdef EPS8266 SPI.begin(); #endif // EPS8266 - #ifdef ESP32 SPI.begin(Pin(GPIO_SPI_CLK), Pin(GPIO_SPI_MISO), Pin(GPIO_SPI_MOSI), -1); #endif // ESP32 @@ -160,10 +153,10 @@ void UfsCheckSDCardInit(void) { #ifdef ESP8266 ufsp = &SDFS; #endif // ESP8266 - #ifdef ESP32 ufsp = &SD; #endif // ESP32 + ufs_type = UFS_TSDC; dfsp = ufsp; if (ffsp) {ufs_dir = 1;} @@ -173,10 +166,38 @@ void UfsCheckSDCardInit(void) { AddLog(LOG_LEVEL_INFO, PSTR("UFS: SDCard mounted")); #endif // ESP8266 #ifdef ESP32 - AddLog(LOG_LEVEL_INFO, PSTR("UFS: SDCard mounted with %d kB free"), UfsInfo(1, 0)); + AddLog(LOG_LEVEL_INFO, PSTR("UFS: SDCard mounted (SPI mode) with %d kB free"), UfsInfo(1, 0)); #endif // ESP32 } } +#ifdef ESP32 + // check if SDIO is configured + else if (PinUsed(GPIO_SDIO_CLK) && PinUsed(GPIO_SDIO_CMD) && PinUsed(GPIO_SDIO_D0)) { + int32_t sdio_cmd = Pin(GPIO_SDIO_CMD); + int32_t sdio_clk = Pin(GPIO_SDIO_CLK); + int32_t sdio_d0 = Pin(GPIO_SDIO_D0); + int32_t sdio_d1 = Pin(GPIO_SDIO_D1); + int32_t sdio_d2 = Pin(GPIO_SDIO_D2); + int32_t sdio_d3 = Pin(GPIO_SDIO_D3); + bool bit_4_mode = (sdio_d1 >= 0) && (sdio_d2 >= 0) && (sdio_d3 >= 0); // enable 4-bit mode if possible + if (bit_4_mode) { + // AddLog(LOG_LEVEL_DEBUG, "UFS: trying SDIO 4-bit clk=%i cmd=%i d0=%i d1=%i d2=%i d3=%i", sdio_clk, sdio_cmd, sdio_d0, sdio_d1, sdio_d2, sdio_d3); + SD_MMC.setPins(sdio_clk, sdio_cmd, sdio_d0, sdio_d1, sdio_d2, sdio_d3); + } else { + // AddLog(LOG_LEVEL_DEBUG, "UFS: trying SDIO 1-bit clk=%i cmd=%i d0=%i", sdio_clk, sdio_cmd, sdio_d0); + SD_MMC.setPins(sdio_clk, sdio_cmd, sdio_d0); + } + if (SD_MMC.begin("/sd", !bit_4_mode /*mode 1 bit*/, false /*format_if_failed*/)) { // mount under "/sd" to be consistent with SD SPI + ufsp = &SD_MMC; + + ufs_type = UFS_TSDC; + dfsp = ufsp; + if (ffsp) {ufs_dir = 1;} + // make sd card the global filesystem + AddLog(LOG_LEVEL_INFO, PSTR("UFS: SDCard mounted (SDIO %i-bit) with %d kB free"), bit_4_mode ? 4 : 1, UfsInfo(1, 0)); + } + } +#endif } #endif // USE_SDCARD