Installation on Xiao ESP32S3


Has anyone had success installing onto the Xiao S3 board? I found the topic here and tried both intallation websites mentioned. They both claim to flash without issue, but the board never comes up on Wi-Fi. I tried this on several different brand new boards.


Today, after 1.5 hours of reflashing my XIAO board, I finally had success with running WLED on XIAO ESP32s3 board: I had to compile wled firmware for this particular board.
What worked for me:

  1. Install git platformio, see Compiling WLED - WLED Project
    It is also recommended to use platformio in VS code, but I had problem with finding Platformio IDE plugin on Linux.

  2. Clone WLED repository

    git clone
    cd WLED
  3. Open and edit platformio.ini file to modify existing esp32s3dev_8MB configuration or create its copy:

    3.1. Leave only one board configuration in ‘[platformio]’ section,

    default_envs = esp32s3dev_8MB

    3.2. Modify or copy&modify board configuration:

    • set board to seeed_xiao_esp32s3
    • set platform to

    so finally your board configuration section should look like this:

    ;; ESP32-S3-DevKitC-1 development board, with 8MB FLASH, no PSRAM (flash_mode: qio)
    board = seeed_xiao_esp32s3
    platform =
    platform_packages = ${esp32s3.platform_packages}
    upload_speed = 921600 ; or 460800
    build_unflags = ${common.build_unflags}
    build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME=ESP32-S3_8MB
    -D ARDUINO_USB_CDC_ON_BOOT=0 ;; -D ARDUINO_USB_MODE=1 ;; for boards with serial-to-USB chip
    ;-D ARDUINO_USB_CDC_ON_BOOT=1 ;; -D ARDUINO_USB_MODE=1 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB")
    lib_deps = ${esp32s3.lib_deps}
    board_build.partitions = tools/WLED_ESP32_8MB.csv
    board_build.f_flash = 80000000L
    board_build.flash_mode = qio
    ; board_build.flash_mode = dio ;; try this if you have problems at startup
    monitor_filters = esp32_exception_decoder    
  4. Build firmware:

    platformio run
  5. Flash!
    I’m using with following command: -p /dev/ttyACM0 --baud 460800 --before default_reset --after hard_reset --chip esp32s3 write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x10000 ./build_output

    where /dev/ttyACM0 is your ESP32 board UART port

I know, this is quite dirty fix, but I wanted to try this XIAO as quick as possible without delving too deeply into the WLED sources.

Hope this helps :slight_smile:

My platformio.ini file: WLED build configuration for seeed_xiao_esp32s3 board · GitHub

A new issue created: Add support for XIAO ESP32-S3 and many other ESP32-based new boards in espressif32 · Issue #3538 · Aircoookie/WLED · GitHub

Wow, thanks! that helped a lot. I got it to build. But, I am on Windows and having a hard time getting it to flash. The flashing process errors out around every time. I literally copied and pasted in your [env:esp32s3dev_8MB] section.

I’m on Windows, so I tried the build/flash button in VSCode on two different boards. Each time, it builds fine, but the flashing process errors out midway through It says that pySerial is throwing the error.

Writing at 0x000d782b... (57 %)
Writing at 0x000dc768... (59 %)
Writing at 0x000e1844... (61 %)

A serial exception error occurred: Cannot configure port, something went wrong. Original message: PermissionError(13, 'The device does not recognize the command.', None, 22)
Note: This error originates from pySerial. It is likely not a problem with esptool, but with the hardware connection or drivers.
For troubleshooting steps visit:

I have tried several lower baudrates (down to 9600), and also trying different cables/connecting directly to the USB port on my PC. Different combinations of cables and baudrates yield different amounts of progress, but none above 70% or so.

Also, I can use the Arduino IDE to flash a random sketch, so I don’t think this is a cable or baudrate issue. Any ideas? In the meantime, I’ll try manually using esptool from the command line.

To me it looks like another program tries to access COM port during flash.
But maybe hardware/driver problem too.

Try to eliminate possible HW problems first:

  • Disconnect everything (led strips, power supply, modules… ) from ESP board except usb cable.
  • Hold ‘B’ and press ‘R’ button before flash starts
  • Check voltage on board between GND and VIN pins
  • Reconnect USB after flash fail

For SW:

  • Is proper(latest?) USB-UART driver installed?
  • Make sure no other software is not accessing COM port during flash (close Arduino, serial monitors, etc), reboot may also help.
  • Try to flash board from browser using or (Chrome/Chromium required)
  • If nothing helps try to flash from Linux.
    If running Live-USB is an issue, try WSL or Virtualbox with host-to-guest USB mapping

Good luck!

Sorry, can’t add more links:

An error occurred: Sorry, new users can only put 2 links in a post.
1 Like

Serg has several binaries compiled for a few other ESP32 variations, including the S3


Hey, sorry to bother you again. I got the firmware to compile and flash from the VSCode IDE on Mac. Still not sure why my flash process from VSCode on Win kept barfing - it works fine when flashing any other project than this one!

Anyway, I got the code to flash onto the Xiao S3…but the WLED-AP doesn’t come up as an option. So I am not sure if it’s actually running. Is there something that I need to do to make sure that everything is ending up in the right memory location when it’s getting flashed?

I am pretty sure that my hardware is fine, because I can upload/run a random Wifi test sketch on it, it connects to my home wifi fine.

Try the exact process in this post with the old files Discord , i personally only tested on Lolins3 but I seen confirmation from many other guys used it with other boards ⁠ , and if that works then OTA latest build and yes AP might take a bit of time to show or do not show unless you reset the device after flashing