Support for ESP32-S2 Logic Board

Hello I was wondering is there support for the ESP32-S2 logic board as of yet? It has been out for a while and I would still like to use this board as my controller.

If not would you please possibly explain why this hasn’t been done yet.

I’m only guessing, but the ESP32-S3 is a newer chipset, and people may have moved on to it.

C3, S2 and S3 are all currently in experimental phase.
There are PIO environments for a few controllers based on those chips so you can compile sources yourself.

@srg74 does also provide nightly builds for those chips.

OOOO this is great to know. Do you happen to know where @srg74 possibly has the nightly builds located?

Thank you for this information as well.

Try at Serg Link in the @blazoncek folder.

My fork is no longer maintained as I shifted all development upstream.

as @blazoncek mentioned, it is possible to successfully compile using PIO for S2 S3 and C3. I can confirm this as I have done this for a while now for all the above variants, 8 and 16MB (I am mainly interested in the MM fork) and have no longer had any FS problems or crashes since I fine tuned the custom build environment a couple of months ago (mainly due to the buggy S2 FS env). The S3 and C3 variants should build with default options once you find your appriorate config while the S2 needs a few custom options to get it working without FS crashes based on your hardware - I would suggest using the Lolin-S2 as template in platform_override.ini if you want to try. I haven’t tried the MM precompiled bins (I prefer to custom compile for my specific hardware) but you can try them for yourself here:

It coud be benficial if you would share S2 custom options you added.
Thanks.

To compile for the S2 version in PIO, use the following under your platform_override.ini - keep in mind that the pins have been defined for my purple lolin_S2 type of board (easy to get from AliExpress, very common and cheap), your board may have a different pin arrangement and memory (flash and PS) so check and adapt accordingly:

[env:lolin_s2_mini]
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.02.00/platform-espressif32.zip
board = lolin_s2_mini
board_build.f_flash = 80000000L
board_build.flash_mode = qio    ; reports dio anyhow
upload_speed =  460800 ;921600
board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
build_unflags = ${common.build_unflags}
  -D USERMOD_DALLASTEMPERATURE ;; disabled because it hangs during usermod setup on -S2 (autodetect broken?)
  -D USE_ALT_DISPLAY ;; four line display seems to have problems with I2C - it hangs during usermod setup
  -D USERMOD_FOUR_LINE_DISPLAY ;; see above
  -D USERMOD_ROTARY_ENCODER_UI ;; see above
  -D WLED_DEBUG
  -D ARDUINO_USB_CDC_ON_BOOT
build_flags = ${common.build_flags} ${esp32s2.build_flags} -D WLED_RELEASE_NAME=LolinS2
  -D USERMOD_AUDIOREACTIVE
  -D I2S_SDPIN=33
  -D I2S_WSPIN=35
  -D I2S_CKPIN=37
  -D SR_FREQ_PROF=2  ;; 0 Default, 1 Line In, 2 for INMP441
  -D USERMOD_CUSTOMEFFECTS
  -D BOARD_HAS_PSRAM
  ;-D ARDUINO_USB_CDC_ON_BOOT=0
  -D ARDUINO_USB_MSC_ON_BOOT=0 
  -D ARDUINO_USB_DFU_ON_BOOT=0
  -D WLED_USE_PSRAM
  -D WLED_DISABLE_INFRARED ;; save flash space
  -D WLED_DISABLE_ALEXA    ;; save flash space
  -D WLED_DISABLE_BROWNOUT_DET
  -D WLED_WATCHDOG_TIMEOUT=0
  -D CONFIG_ASYNC_TCP_USE_WDT=0
  -D LEDPIN=16
  -D BTNPIN=0
  -D HW_PIN_CLOCKSPI=7
  -D HW_PIN_DATASPI=11
  -D HW_PIN_MISOSPI=9
;  -D STATUSLED=15
lib_deps = ${esp32s2.lib_deps}
  https://github.com/blazoncek/arduinoFFT.git ; Needed for Audioreactive Mod on S2 S3 variants due to lack of FPU
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation

Also, the above build will support the digital I2S input using the INMP441.

1 Like

I can confirm it’s working with precompiled bins. I have the same purple board (ESP32 S2 Mini) and i used your same pins (33-35-37) to an INP411 and it’s AMAZING.
I’m controlling 5 led-strip for a total of 368 leds (by “virtual” DDP-RGB)