WLED icon indicating copy to clipboard operation
WLED copied to clipboard

ESP32-S3-DevKit-C1 w/ N32R8V support

Open Obbi89 opened this issue 1 year ago • 2 comments

Currently you cannot easily use any WROOM-2 based ESP32 Boards. As far as I can tell, this is related to the flash mode used for all WR2-ESPs Which seems to require OPI for both of PSRAM and FLASH

Describe the solution you'd like After finding this table I started tweaking around in the ini files and was able to successfully upload with following settings:

[env:esp32s3dev_32MB_PSRAM_opi_opi]
extends = env:esp32s3dev_8MB_PSRAM_opi
board_build.arduino.memory_type = opi_opi     ;; use with PSRAM: 16MB or 32MB
board_build.partitions = tools/WLED_ESP32_32MB.csv ;;  copy of 16MB.csv (could be re-aligned if required)
board_upload.flash_size = 32MB
board_build.flash_mode = dio

So far everything seems to work perfectly.

Describe alternatives you've considered Buying another ESP32 (:

Obbi89 avatar Aug 13 '24 02:08 Obbi89

If @softhack007 agrees, please provide a PR for updating platformio.ini and/or platformio_override.sample.ini.

blazoncek avatar Aug 13 '24 05:08 blazoncek

The comment on the third line is misleading. The 32MB is flash (N) and not PSRAM (R)

In case it helps anyone else reading this, the general rule of thumb for memory_type for Espressif's own S3 moduless is that if it's 2MB of RAM, it's QUAD spi (qspi) and 8 RAM are all OCTAL ospi per the table at the bottom of https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html

for flash_mode they're quads until they hit 16 or 32MB, then they break to octals.

Now there are a few vendors that roll their own antennas and flash and don't use Espressif "cans" but just the raw chip. have seen quad RAMs on 8MB boards from some vendors to save a few pennies and halving the RAM performance. So the above rule isn't absolute. But if you get bootloops on the new parts after flashing and freakouts in psraminit, a patch like the above is the #1 place to start.

You can also find where the boards are defined in the repo and add your own or find inspiration, but PRs to add boards have been blocked since PlatformIO and Espressif are acting like children.

Until this gets worked out, adding your own board as above (and as I do in similar projects) is the way to go. Eventually we should be able to remove those.

Citation of adding a smaller module, the N16r2, in the top hunk of: https://github.com/robertlipe/NightDriverStrip/commit/5ec161add9af647fbd40c0a5201b982961f70138

Feel free to copy-paste part of that that when you graft in 32R8 above.

robertlipe avatar Aug 30 '24 23:08 robertlipe