(Wemos) D1 ESP32

Last Updated on 15 April 2022 by Suffocation

The WEMOS D1 EP32 is the replacement for the D1 Mini. It has a vapor-deposited ESP 32 Wroom module. A USB Micro connector, a reset button, and two built-in LEDs on the ESP are the only peripherals. It's relatively small in terms of dimensions, but this does not limit the number of external pins, which are led outwards in two rows.

Interesting, how with the Wemos D1 Mini there are so many expansion boardsSee manufacturer).

Link to D1 Mini (predecessor)

I haven't found any information about the D1 ESP32 on Wemos, so I question whether it is officially produced by Wemos.

Facts

  • USB Micro Connector (CH9102)
  • Reset button
  • 18 Digital Pins
  • 8 Analogue Pins (almost freely configurable)
  • Operating voltage 3.3V
  • Connection voltage 5V
  • 4M SPI Flash Memory
  • 80MHz/240MHz
  • 2 LEDs
  • Price ~€5
  • Dimensions in mm: l/w/h 39/32/13

Pin assignment

(Wemos) D1 ESP32 – Pin Assignment
PinFunctionsESP32 Pin
TXUART TXDTXD
RXUART RXDRXD
A0IO, ADC2GPIO36
D0InGPIO26
D1InGPIO22, I²C SCL
D2InGPIO21, I²C SDA
D3InGPIO17
D4InGPIO16
D5InGPIO18
D6InGPIO19
D7InGPIO23
D8InGPIO5
GGroundGround
5V5V
3V33.3V3.3V
RSTResetRST

Source: https://www.wemos.cc/en/latest/d1/d1_mini.html

Areas of application

  • Microcontroller projects with Wi-Fi
  • Remote control
  • Alarm clock
  • ...

Views

Programming

Preparation

The Wemos comes with a CH9102 USB interface; if the driver is not already installed, it will need to be installed afterwards.

CH9102 USB Driver

Libraries

No additional libraries are required for programming the Wemos. However, the ESP extension for the Arduino GUI must be installed. See also the Link for setup.

Current status Arduino ESP32 Library V2.0.2

Test programme

Blink can be used as a test program. This is available either in the example programs of the Arduino GUI, under which you will also find the task-controlled Blink, which is quite useful for learning the multitask environment on the ESP32. This can also be obtained via Github:

https://github.com/espressif/arduino-esp32/blob/master/libraries/ESP32/examples/FreeRTOS/FreeRTOS.ino

I was able to program my Wemos D1 ESP32 with the following settings:

As the port, please select your serial interface; for me, it's COM 15.

Problems

D Ports not found

Unfortunately, the D-ports are not mapped. Here, it helps to simply create defines with the corresponding ports. Example:

#ifndef D7
#define D7 23
#endif

#ifndef D5
#define D5 18
#endif

Wemos board not recognised

CH9102 Install drivers

Should there be any further problems Zadig Try.

Programming fails

Check board, port and programmer settings. Possibly try others than the ones I showed. There are also board settings for the Wemos.

Miscellaneous

Fritzing Wemos D1 ESP32 Mini:

https://forum.fritzing.org/uploads/short-url/wv8xVt6y4tFToPngAeMqUju2oUl.fzpz

Example projects:
https://github.com/wemos/D1_mini_Examples

3D printing model
https://grabcad.com/library/wemos-d1-mini-v3-0-0-1

https://grabcad.com/library/wemos-d1-mini-1

Conclusion

In my opinion, the D1 ESP32 is not entirely compatible as I couldn't find a board description for the Arduino GUI that also included the mapping for the D-ports. Nevertheless, it can serve as a speedy replacement. Due to the additional pins, it is also well-suited for other projects. With the pass-through ports, it can also be operated on a breadboard and is very compact overall.

Related Posts

Sources

ESP Wroom 32 Datasheet

https://arduino-projekte.info/produkt/d1-mini-esp32-wifi-bluetooth/

CH9102 USB Driver

https://makersportal.com/shop/esp32-d1-mini-bluetoothwifi-board

https://docs.platformio.org/en/stable/boards/espressif32/wemos_d1_mini32.html

3 thoughts on “(Wemos) D1 ESP32

  1. Hi Sven,
    If the problem with brownout exceptions still hasn't been solved – here's a tip: insert the following code on the first line in setup().
    void setup() {
    RTC_CNTL_BROWN_OUT_REG,0);
    .........

  2. Hi, I found the ESP32 in the D1-mini format in my bits and bobs box and wanted to tinker with something…

    As soon as I try a WifiConnect with the Arduino API, I get a brownout exception and restart. The board is connected to the computer via USB (tested with different cables and USB ports). Always the same rubbish.

    Unlike other dev boards, at least the 5V voltage is available on an external pin which can be supplied with an external voltage source. Usually, for many ESP32 projects (with Wi-Fi), it is recommended to stabilise the external voltage with a hefty capacitor between +5V and GND. How should one do this with this board?

    As Stefan wrote, mapping the pinouts to the Arduino code is fiddly reverse-engineering.

    I would use a different board next time.

    1. Hi Sven,

      I'm currently detoxing from technology 😉, so here's just a quick message. I would have initially guessed voltage too (VCC pin). But it could also be down to the settings in the Arduino GUI, memory (size, type...).

      Hello
      Stefan

Leave a Reply

Your email address will not be published. Required fields are marked *