ESP32-S2 – WEMOS S2 mini

The Wemos ESP32-S2 is a small Wi-Fi module based on the ESP32-S2FN4R2. The S2 is a new version of the well-known Wemos D1 Mini. The biggest update to the S2 is about twice as many I/O pins in the same form factor. This means that most shields intended for the Wemos D1 Mini can also be used for this module. The Wemos S2 Mini is easy to program in Arduino, MicroPython or ESP-IDF.

ESP32-S2 Features

  • Based ESP32-S2FN4R2 Wi-Fi IC
  • Type-C USB
  • 4 MB Flash
  • 2 MB PSRAM
  • 27x IO
  • ADC, DAC, I2C, SPI, UART, USB OTG
  • Compatible with LOLIN D1 mini shields
  • Compatible with MicroPython, Arduino and ESP-IDF
  • Default firmware: MicroPython
ESP32-S2

If you’re looking for a great way to get started with the ESP32, the Wemos/LOLIN S2 mini is a great option. It comes in a form factor that is compatible with the ESP8266 based Wemos/LOLIN D1 mini, so the S2 mini can work with D2 mini shields. Ground, Vbus and 3V3 pins are in the same place, although the IO pin numbering is different, so any swaps would definitely require a bit of reprogramming for proper functionality.

ESP32-S2

The S2 mini has two rows of header connections on the inside of the D1 mini compatible pins to accommodate the extended 27 broken out IO. This extended IO can be very useful in some situations, although the double-row header setup can also be difficult for breadboard use. In my experiment – I’m working on a device that could potentially be used with the S2 mini or D1 mini – I filled only the outer headers and this worked well for my purposes.

In addition to the pin arrangement, the device has a USB-C input, which is much appreciated. It also has a reset button, as well as an interface button, which is required to put it into programming mode. Here you will find information about the device, including a schematic and guides to get started with MicroPython and Arduino.

Arduino

With the S2 mini in hand, you probably want to make sure you can flash the built-in LED. If you haven’t done that before, please add support for ESP32 modules through the board manager first. Go to preferences >Additional Board Manager URLs and add:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json 
ESP32-S2

Under Arduino > Preferences in the Additional Board Manager URLs field. Then go to Tools > Board > Boards Manager and search for esp32. Install the option by Espressif Systems.

ESP32-S2

Once updated, select LOLIN S2 MINI under Board/ESP32 Arduino.

Load up the standard blink sketch into the Arduino IDE, and plug in the LOLIN S2 mini board via USB-C, and select the appropriate port. Press the upload button on the Arduino IDE, then hit reset, and the interface button on the S2 mini. Quickly release the reset button, then the 0 interface button to put it into programming mode, and if all is well the blink program will be loaded onto the S2 mini. An “error” message may be displayed, which is simply telling you to hit the reset button to put the device into run mode. Reset, and the onboard LED should blink away.

This took me a bit of fiddling to get the load procedure down, but hopefully that shortcuts things for you. If you don’t see the proper port initially, try running the reset/interface button procedure before opening up Tools > Port.

I/O Pin Arrangement

The pinout/schematic of the device can be found here, or at the bottom of the linked Wemos info page. For working with the Arduino IDE, what you see on the board, and the GPIO/IO numbering corresponds to the Arduino pin numbering. That is, if you enter digital Write(17, HIGH); the pin marked as such goes high on the S2 mini.

ESP32-S2

This may seem obvious, but sometimes pin numbering on such boards is not this straightforward, so don’t overthink it!

Summary

For prototyping and hobby applications where you want to have all the components needed to support an ESP32-S2 in one convenient package, the S2 mini seems like a good option. Having the ability to try out both an ESP32 and ESP8266 without swapping pins is really great for prototyping, even if you can end up going with something like a WROOM module if and when a device goes into production. In our age of questionable parts availability, this kind of flexibility is perhaps more important than ever before!

ESP32-S2

Reference

Espressif, ESP32-S2 Features, https://www.espressif.com/en/products/socs/esp32-s2 embedded computing, development-kits, https://embeddedcomputing.com/technology/open-source/development-kits/hands-on-with-the-wemos-s2-mini-esp32-development-board-2

Scroll to Top