diff --git a/usermods/BME280_v2/usermod_bme280.h b/usermods/BME280_v2/usermod_bme280.h
index a36c162e..3b9c80ec 100644
--- a/usermods/BME280_v2/usermod_bme280.h
+++ b/usermods/BME280_v2/usermod_bme280.h
@@ -405,10 +405,10 @@ public:
}
void appendConfigData() {
- oappend(SET_F("addHB('BME280/BMP280');"));
+ oappend(SET_F("addHB('BME280');"));
oappend(SET_F("addInfo('BME280/BMP280:pin[]',0,'','I2C/SPI CLK');"));
- oappend(SET_F("dRO('BME280/BMP280:pin[]',0);"));
+ oappend(SET_F("dRO('BME280/BMP280:pin[]',0);")); // disable read only pins
oappend(SET_F("rOpt('BME280/BMP280:pin[]',0,'use global (")); oappendi(i2c_scl); oappend(")',-1);");
oappend(SET_F("addInfo('BME280/BMP280:pin[]',1,'','I2C/SPI DTA');"));
diff --git a/usermods/audioreactive/audio_reactive.h b/usermods/audioreactive/audio_reactive.h
index 39bee83d..865049db 100644
--- a/usermods/audioreactive/audio_reactive.h
+++ b/usermods/audioreactive/audio_reactive.h
@@ -2031,53 +2031,53 @@ class AudioReactive : public Usermod {
oappend(SET_F("addInfo('AudioReactive:help',0,'');"));
//WLEDMM: add defaults
- #ifdef AUDIOPIN
- oappend(SET_F("xOpt('AudioReactive:analogmic:pin',1,' ⎌',")); oappendi(AUDIOPIN); oappend(");");
- #endif
+ #ifdef AUDIOPIN
+ oappend(SET_F("xOpt('AudioReactive:analogmic:pin',1,' ⎌',")); oappendi(AUDIOPIN); oappend(");");
+ #endif
oappend(SET_F("aOpt('AudioReactive:analogmic:pin',1);")); //only analog options
oappend(SET_F("dd=addDropdown('AudioReactive','digitalmic:type');"));
- #if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
- #if SR_DMTYPE==0
- oappend(SET_F("addOption(dd,'Generic Analog (⎌)',0);"));
- #else
- oappend(SET_F("addOption(dd,'Generic Analog',0);"));
- #endif
- #endif
- #if SR_DMTYPE==1
- oappend(SET_F("addOption(dd,'Generic I2S (⎌)',1);"));
- #else
- oappend(SET_F("addOption(dd,'Generic I2S',1);"));
- #endif
- #if SR_DMTYPE==2
- oappend(SET_F("addOption(dd,'ES7243 (⎌)',2);"));
- #else
- oappend(SET_F("addOption(dd,'ES7243',2);"));
- #endif
- #if SR_DMTYPE==3
- oappend(SET_F("addOption(dd,'SPH0654 (⎌)',3);"));
- #else
- oappend(SET_F("addOption(dd,'SPH0654',3);"));
- #endif
- #if SR_DMTYPE==4
- oappend(SET_F("addOption(dd,'Generic I2S with Mclk (⎌)',4);"));
- #else
- oappend(SET_F("addOption(dd,'Generic I2S with Mclk',4);"));
- #endif
- #if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
- #if SR_DMTYPE==5
- oappend(SET_F("addOption(dd,'Generic I2S PDM (⎌)',5);"));
- #else
- oappend(SET_F("addOption(dd,'Generic I2S PDM',5);"));
- #endif
- #endif
+ #if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
+ #if SR_DMTYPE==0
+ oappend(SET_F("addOption(dd,'Generic Analog (⎌)',0);"));
+ #else
+ oappend(SET_F("addOption(dd,'Generic Analog',0);"));
+ #endif
+ #endif
+ #if SR_DMTYPE==1
+ oappend(SET_F("addOption(dd,'Generic I2S (⎌)',1);"));
+ #else
+ oappend(SET_F("addOption(dd,'Generic I2S',1);"));
+ #endif
+ #if SR_DMTYPE==2
+ oappend(SET_F("addOption(dd,'ES7243 (⎌)',2);"));
+ #else
+ oappend(SET_F("addOption(dd,'ES7243',2);"));
+ #endif
+ #if SR_DMTYPE==3
+ oappend(SET_F("addOption(dd,'SPH0654 (⎌)',3);"));
+ #else
+ oappend(SET_F("addOption(dd,'SPH0654',3);"));
+ #endif
+ #if SR_DMTYPE==4
+ oappend(SET_F("addOption(dd,'Generic I2S with Mclk (⎌)',4);"));
+ #else
+ oappend(SET_F("addOption(dd,'Generic I2S with Mclk',4);"));
+ #endif
+ #if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
+ #if SR_DMTYPE==5
+ oappend(SET_F("addOption(dd,'Generic I2S PDM (⎌)',5);"));
+ #else
+ oappend(SET_F("addOption(dd,'Generic I2S PDM',5);"));
+ #endif
+ #endif
- #ifdef SR_SQUELCH
- oappend(SET_F("addInfo('AudioReactive:config:squelch',1,'⎌ ")); oappendi(SR_SQUELCH); oappend("');"); // 0 is field type, 1 is actual field
- #endif
- #ifdef SR_GAIN
- oappend(SET_F("addInfo('AudioReactive:config:gain',1,'⎌ ")); oappendi(SR_GAIN); oappend("');"); // 0 is field type, 1 is actual field
- #endif
+ #ifdef SR_SQUELCH
+ oappend(SET_F("addInfo('AudioReactive:config:squelch',1,'⎌ ")); oappendi(SR_SQUELCH); oappend("');"); // 0 is field type, 1 is actual field
+ #endif
+ #ifdef SR_GAIN
+ oappend(SET_F("addInfo('AudioReactive:config:gain',1,'⎌ ")); oappendi(SR_GAIN); oappend("');"); // 0 is field type, 1 is actual field
+ #endif
oappend(SET_F("dd=addDropdown('AudioReactive','config:AGC');"));
oappend(SET_F("addOption(dd,'Off',0);"));
@@ -2100,92 +2100,107 @@ class AudioReactive : public Usermod {
//WLEDMM add defaults
oappend(SET_F("dd=addDropdown('AudioReactive','frequency:profile');"));
- #if SR_FREQ_PROF==0
- oappend(SET_F("addOption(dd,'Generic Microphone (⎌)',0);"));
- #else
- oappend(SET_F("addOption(dd,'Generic Microphone',0);"));
- #endif
- #if SR_FREQ_PROF==1
- oappend(SET_F("addOption(dd,'Generic Line-In (⎌)',1);"));
- #else
- oappend(SET_F("addOption(dd,'Generic Line-In',1);"));
- #endif
- #if SR_FREQ_PROF==5
- oappend(SET_F("addOption(dd,'ICS-43434 (⎌)',5);"));
- #else
- oappend(SET_F("addOption(dd,'ICS-43434',5);"));
- #endif
- #if SR_FREQ_PROF==6
- oappend(SET_F("addOption(dd,'ICS-43434 - big speakers (⎌)',6);"));
- #else
- oappend(SET_F("addOption(dd,'ICS-43434 - big speakers',6);"));
- #endif
- #if SR_FREQ_PROF==7
- oappend(SET_F("addOption(dd,'SPM1423 (⎌)',7);"));
- #else
- oappend(SET_F("addOption(dd,'SPM1423',7);"));
- #endif
- #if SR_FREQ_PROF==2
- oappend(SET_F("addOption(dd,'IMNP441 (⎌)',2);"));
- #else
- oappend(SET_F("addOption(dd,'IMNP441',2);"));
- #endif
- #if SR_FREQ_PROF==3
- oappend(SET_F("addOption(dd,'IMNP441 - big speakers (⎌)',3);"));
- #else
- oappend(SET_F("addOption(dd,'IMNP441 - big speakers',3);"));
- #endif
- #if SR_FREQ_PROF==4
- oappend(SET_F("addOption(dd,'IMNP441 - small speakers (⎌)',4);"));
- #else
- oappend(SET_F("addOption(dd,'IMNP441 - small speakers',4);"));
- #endif
- #if SR_FREQ_PROF==10
- oappend(SET_F("addOption(dd,'flat - no adjustments (⎌)',10);"));
- #else
- oappend(SET_F("addOption(dd,'flat - no adjustments',10);"));
- #endif
- #if SR_FREQ_PROF==8
- oappend(SET_F("addOption(dd,'userdefined #1 (⎌)',8);"));
- #else
- oappend(SET_F("addOption(dd,'userdefined #1',8);"));
- #endif
- #if SR_FREQ_PROF==9
- oappend(SET_F("addOption(dd,'userdefined #2 (⎌)',9);"));
- #else
- oappend(SET_F("addOption(dd,'userdefined #2',9);"));
- #endif
+ #if SR_FREQ_PROF==0
+ oappend(SET_F("addOption(dd,'Generic Microphone (⎌)',0);"));
+ #else
+ oappend(SET_F("addOption(dd,'Generic Microphone',0);"));
+ #endif
+ #if SR_FREQ_PROF==1
+ oappend(SET_F("addOption(dd,'Generic Line-In (⎌)',1);"));
+ #else
+ oappend(SET_F("addOption(dd,'Generic Line-In',1);"));
+ #endif
+ #if SR_FREQ_PROF==5
+ oappend(SET_F("addOption(dd,'ICS-43434 (⎌)',5);"));
+ #else
+ oappend(SET_F("addOption(dd,'ICS-43434',5);"));
+ #endif
+ #if SR_FREQ_PROF==6
+ oappend(SET_F("addOption(dd,'ICS-43434 - big speakers (⎌)',6);"));
+ #else
+ oappend(SET_F("addOption(dd,'ICS-43434 - big speakers',6);"));
+ #endif
+ #if SR_FREQ_PROF==7
+ oappend(SET_F("addOption(dd,'SPM1423 (⎌)',7);"));
+ #else
+ oappend(SET_F("addOption(dd,'SPM1423',7);"));
+ #endif
+ #if SR_FREQ_PROF==2
+ oappend(SET_F("addOption(dd,'IMNP441 (⎌)',2);"));
+ #else
+ oappend(SET_F("addOption(dd,'IMNP441',2);"));
+ #endif
+ #if SR_FREQ_PROF==3
+ oappend(SET_F("addOption(dd,'IMNP441 - big speakers (⎌)',3);"));
+ #else
+ oappend(SET_F("addOption(dd,'IMNP441 - big speakers',3);"));
+ #endif
+ #if SR_FREQ_PROF==4
+ oappend(SET_F("addOption(dd,'IMNP441 - small speakers (⎌)',4);"));
+ #else
+ oappend(SET_F("addOption(dd,'IMNP441 - small speakers',4);"));
+ #endif
+ #if SR_FREQ_PROF==10
+ oappend(SET_F("addOption(dd,'flat - no adjustments (⎌)',10);"));
+ #else
+ oappend(SET_F("addOption(dd,'flat - no adjustments',10);"));
+ #endif
+ #if SR_FREQ_PROF==8
+ oappend(SET_F("addOption(dd,'userdefined #1 (⎌)',8);"));
+ #else
+ oappend(SET_F("addOption(dd,'userdefined #1',8);"));
+ #endif
+ #if SR_FREQ_PROF==9
+ oappend(SET_F("addOption(dd,'userdefined #2 (⎌)',9);"));
+ #else
+ oappend(SET_F("addOption(dd,'userdefined #2',9);"));
+ #endif
oappend(SET_F("dd=addDropdown('AudioReactive','sync:mode');"));
oappend(SET_F("addOption(dd,'Off',0);"));
oappend(SET_F("addOption(dd,'Send',1);"));
oappend(SET_F("addOption(dd,'Receive',2);"));
oappend(SET_F("addInfo('AudioReactive:digitalmic:type',1,'requires reboot!');")); // 0 is field type, 1 is actual field
+
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',0,'sd/data/dout','I2S SD');"));
- #ifdef I2S_SDPIN
- oappend(SET_F("xOpt('AudioReactive:digitalmic:pin[]',0,' ⎌',")); oappendi(I2S_SDPIN); oappend(");");
- #endif
+ #ifdef I2S_SDPIN
+ oappend(SET_F("xOpt('AudioReactive:digitalmic:pin[]',0,' ⎌',")); oappendi(I2S_SDPIN); oappend(");");
+ #endif
+
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',1,'ws/clk/lrck','I2S WS');"));
- oappend(SET_F("dRO('AudioReactive:digitalmic:pin[]',1);"));
- #ifdef I2S_WSPIN
- oappend(SET_F("xOpt('AudioReactive:digitalmic:pin[]',1,' ⎌',")); oappendi(I2S_WSPIN); oappend(");");
- #endif
+ oappend(SET_F("dRO('AudioReactive:digitalmic:pin[]',1);")); // disable read only pins
+ #ifdef I2S_WSPIN
+ oappend(SET_F("xOpt('AudioReactive:digitalmic:pin[]',1,' ⎌',")); oappendi(I2S_WSPIN); oappend(");");
+ #endif
+
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',2,'sck/bclk','I2S SCK');"));
- oappend(SET_F("dRO('AudioReactive:digitalmic:pin[]',2);"));
- #ifdef I2S_CKPIN
- oappend(SET_F("xOpt('AudioReactive:digitalmic:pin[]',2,' ⎌',")); oappendi(I2S_CKPIN); oappend(");");
- #endif
+ oappend(SET_F("dRO('AudioReactive:digitalmic:pin[]',2);")); // disable read only pins
+ #ifdef I2S_CKPIN
+ oappend(SET_F("xOpt('AudioReactive:digitalmic:pin[]',2,' ⎌',")); oappendi(I2S_CKPIN); oappend(");");
+ #endif
+
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',3,'master clock','I2S MCLK');"));
- oappend(SET_F("dRO('AudioReactive:digitalmic:pin[]',3);"));
- #if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
- oappend(SET_F("dOpt('AudioReactive:digitalmic:pin[]',3,2,2);")); //only use -1, 0, 1 or 3
- oappend(SET_F("dOpt('AudioReactive:digitalmic:pin[]',3,4,39);")); //only use -1, 0, 1 or 3
- #endif
+ oappend(SET_F("dRO('AudioReactive:digitalmic:pin[]',3);")); // disable read only pins
+ #if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
+ oappend(SET_F("dOpt('AudioReactive:digitalmic:pin[]',3,2,2);")); //only use -1, 0, 1 or 3
+ oappend(SET_F("dOpt('AudioReactive:digitalmic:pin[]',3,4,39);")); //only use -1, 0, 1 or 3
+ #endif
+ #ifdef MCLK_PIN
+ oappend(SET_F("xOpt('AudioReactive:digitalmic:pin[]',3,' ⎌',")); oappendi(MCLK_PIN); oappend(");");
+ #endif
+
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',4,'','I2C SDA');"));
oappend(SET_F("rOpt('AudioReactive:digitalmic:pin[]',4,'use global (")); oappendi(i2c_sda); oappend(")',-1);");
+ #ifdef ES7243_SDAPIN
+ oappend(SET_F("xOpt('AudioReactive:digitalmic:pin[]',4,' ⎌',")); oappendi(ES7243_SDAPIN); oappend(");");
+ #endif
+
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',5,'','I2C SCL');"));
oappend(SET_F("rOpt('AudioReactive:digitalmic:pin[]',5,'use global (")); oappendi(i2c_scl); oappend(")',-1);");
- oappend(SET_F("dRO('AudioReactive:digitalmic:pin[]',5);"));
+ #ifdef ES7243_SCLPIN
+ oappend(SET_F("xOpt('AudioReactive:digitalmic:pin[]',5,' ⎌',")); oappendi(ES7243_SCLPIN); oappend(");");
+ #endif
+ oappend(SET_F("dRO('AudioReactive:digitalmic:pin[]',5);")); // disable read only pins
}
diff --git a/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h b/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h
index d8beeaf2..6747c80e 100644
--- a/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h
+++ b/usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h
@@ -31,35 +31,26 @@
//The SCL and SDA pins are defined here.
#ifndef FLD_PIN_SCL
- #define FLD_PIN_SCL i2c_scl
+ #define FLD_PIN_SCL -1
#endif
#ifndef FLD_PIN_SDA
- #define FLD_PIN_SDA i2c_sda
+ #define FLD_PIN_SDA -1
#endif
#ifndef FLD_PIN_CLOCKSPI
- #define FLD_PIN_CLOCKSPI spi_sclk
+ #define FLD_PIN_CLOCKSPI -1
#endif
- #ifndef FLD_PIN_MOSISPI //WLEDMM renamed from HW_PIN_DATASPI
- #define FLD_PIN_MOSISPI spi_mosi
+#ifndef FLD_PIN_MOSISPI //WLEDMM renamed from HW_PIN_DATASPI
+ #define FLD_PIN_MOSISPI -1
#endif
#ifndef FLD_PIN_CS
- #define FLD_PIN_CS spi_cs
+ #define FLD_PIN_CS -1
#endif
-#ifdef ARDUINO_ARCH_ESP32
- #ifndef FLD_PIN_DC
- #define FLD_PIN_DC 19
- #endif
- #ifndef FLD_PIN_RESET
- #define FLD_PIN_RESET 26
- #endif
-#else
- #ifndef FLD_PIN_DC
- #define FLD_PIN_DC 12
- #endif
- #ifndef FLD_PIN_RESET
- #define FLD_PIN_RESET 16
- #endif
+#ifndef FLD_PIN_DC
+ #define FLD_PIN_DC -1
+#endif
+#ifndef FLD_PIN_RESET
+ #define FLD_PIN_RESET -1
#endif
#ifndef FLD_TYPE
@@ -1064,27 +1055,42 @@ class FourLineDisplayUsermod : public Usermod {
bool isSPI = (type == SSD1306_SPI || type == SSD1306_SPI64);
// WLEDMM add defaults
oappend(SET_F("addInfo('4LineDisplay:pin[]',0,'','I2C/SPI CLK');"));
- oappend(SET_F("dRO('4LineDisplay:pin[]',0);"));
- #ifdef FLD_PIN_SCL
- oappend(SET_F("xOpt('4LineDisplay:pin[]',0,' ⎌',")); oappendi(FLD_PIN_SCL); oappend(");");
- #endif
+ oappend(SET_F("dRO('4LineDisplay:pin[]',0);")); // disable read only pins
if (isSPI) {
oappend(SET_F("rOpt('4LineDisplay:pin[]',0,'use global (")); oappendi(spi_sclk); oappend(")',-1);");
+ #ifdef FLD_PIN_CLOCKSPI
+ oappend(SET_F("xOpt('4LineDisplay:pin[]',0,' ⎌',")); oappendi(FLD_PIN_CLOCKSPI); oappend(");");
+ #endif
} else {
oappend(SET_F("rOpt('4LineDisplay:pin[]',0,'use global (")); oappendi(i2c_scl); oappend(")',-1);");
+ #ifdef FLD_PIN_SCL
+ oappend(SET_F("xOpt('4LineDisplay:pin[]',0,' ⎌',")); oappendi(FLD_PIN_SCL); oappend(");");
+ #endif
}
oappend(SET_F("addInfo('4LineDisplay:pin[]',1,'','I2C/SPI DTA');"));
- #ifdef FLD_PIN_SDA
- oappend(SET_F("xOpt('4LineDisplay:pin[]',1,' ⎌',")); oappendi(FLD_PIN_SDA); oappend(");");
- #endif
if (isSPI) {
oappend(SET_F("rOpt('4LineDisplay:pin[]',1,'use global (")); oappendi(spi_mosi); oappend(")',-1);");
+ #ifdef FLD_PIN_MOSISPI
+ oappend(SET_F("xOpt('4LineDisplay:pin[]',1,' ⎌',")); oappendi(FLD_PIN_MOSISPI); oappend(");");
+ #endif
} else {
oappend(SET_F("rOpt('4LineDisplay:pin[]',1,'use global (")); oappendi(i2c_sda); oappend(")',-1);");
+ #ifdef FLD_PIN_SDA
+ oappend(SET_F("xOpt('4LineDisplay:pin[]',1,' ⎌',")); oappendi(FLD_PIN_SDA); oappend(");");
+ #endif
}
oappend(SET_F("addInfo('4LineDisplay:pin[]',2,'','SPI CS');"));
+ #ifdef FLD_PIN_CS
+ oappend(SET_F("xOpt('4LineDisplay:pin[]',2,' ⎌',")); oappendi(FLD_PIN_CS); oappend(");");
+ #endif
oappend(SET_F("addInfo('4LineDisplay:pin[]',3,'','SPI DC');"));
+ #ifdef FLD_PIN_DC
+ oappend(SET_F("xOpt('4LineDisplay:pin[]',3,' ⎌',")); oappendi(FLD_PIN_DC); oappend(");");
+ #endif
oappend(SET_F("addInfo('4LineDisplay:pin[]',4,'','SPI RST');"));
+ #ifdef FLD_PIN_RESET
+ oappend(SET_F("xOpt('4LineDisplay:pin[]',4,' ⎌',")); oappendi(FLD_PIN_RESET); oappend(");");
+ #endif
//WLEDMM add errorMessage to um settings
if (strcmp(errorMessage, "") != 0) {
diff --git a/wled00/xml.cpp b/wled00/xml.cpp
index d3a6d390..57ce36d5 100644
--- a/wled00/xml.cpp
+++ b/wled00/xml.cpp
@@ -734,7 +734,7 @@ void getSettingsJS(AsyncWebServerRequest* request, byte subPage, char* dest) //W
#endif
oappend(SET_F("addInfo('if:SCL:pin',0,'', 'SCL');"));
oappend(SET_F("xOpt('if:SCL:pin',1,' ⍼',")); oappendi(SCL); oappend(");");
- oappend(SET_F("dRO('if:SCL:pin',1);"));
+ oappend(SET_F("dRO('if:SCL:pin',1);")); // disable read only pins
#ifdef HW_PIN_SCL
oappend(SET_F("xOpt('if:SCL:pin',1,' ⎌',")); oappendi(HW_PIN_SCL); oappend(");");
#endif
@@ -750,7 +750,7 @@ void getSettingsJS(AsyncWebServerRequest* request, byte subPage, char* dest) //W
#endif
oappend(SET_F("addInfo('if:SCLK:pin',0,'', 'SCLK');"));
oappend(SET_F("xOpt('if:SCLK:pin',1,' ⍼',")); oappendi(SCK); oappend(");");
- oappend(SET_F("dRO('if:SCLK:pin',1);"));
+ oappend(SET_F("dRO('if:SCLK:pin',1);")); // disable read only pins
#ifdef HW_PIN_CLOCKSPI
oappend(SET_F("xOpt('if:SCLK:pin',1,' ⎌',")); oappendi(HW_PIN_CLOCKSPI); oappend(");");
#endif