The Arduino Uno is the reference for development boards to start learning programming. The Arduino Uno is an ideal learning platform because it does not cost much and you can learn to code on concrete projects. What better than to see his robot move. There are also many daughter boards that are often found under the name Shield. There are shields to add WiFi connectivity, Bluetooth or Ethernet but these boards are very expensive. The ESP8266 (and its successor the ESP32) fills this gap. The WiFi module ESP8266 is able to run Arduino code in C++, has 11 inputs / outputs (all PWM) and an analog input (3.3V max.). Manufacturers quickly realized the value of offering Arduino Uno boards based on ESP8266 modules to be compatible with all existing shields.
ESPDuino or Wemos D1 R2
ESPDuino is the oldest ESP8266 development board in Arduino Uno format. It was quickly cloned and is now found at Doit.am (former Geekcreit). At Wemos, it is called Wemos D1 R2.
These boards are in almost identical. The difference will mainly reside at the USB connector (type A for ESPDuino or micro-USB on the Wemos). The Serial to USB converter may also be different. You may need to install the corresponding drivers. In general it is a CH34O or CH341. If you’re having trouble, follow this tutorial (in French at the moment) to install it on your environment.
Differences can also be found in the ESP8266 module. The Wemos is built around an ESP-12 while the SPDuino ships an ESP-13 (ESP-WROOM-02 from Espressif). Both modules have 4 MB of flash memory and 64 KB of RAM. From the point of view of the end user (who we are), we can consider the two modules as identical, and therefore the two development boards. For the most demanding of you, know that Espressif has completely taken over the designation of his boards recently. They all now bear the same name ESP8266EX. In the medium term, when the manufacturers have exhausted all their stock of modules, there will be only 4 models with small optimizations. All the details are here.
- ESP-WROOM-02, operates from -40 ° C ~ 125 ° C. Low dimension 18x20x3 mm with PCB antenna
- ESP-WROOM-02D, the PCB antenna is optimized for better WiFi reception
- ESP-WROOM-02U. The module is even more compact (18Xx14.3×3.2mm). The PCB antenna is replaced by an external antenna connector to U.FL IPEX standard.
- ESP-WROOM-S2. This module can operate as an SDIO / SPI slave with a bus speed of up to 8 Mbps.
Attention to GPIO that works with a voltage of 3.3V
Special feature of the ESP8266 compared to the Arduino Uno (this is no longer the case for the Genuino 101 and new Intel Curie-based boards), the GPIO operates at a voltage of 3.3V. It will therefore in some cases adapt your editing. For this, there are voltage dividers (5V to 3.3V) or vice versa (3.3V to 5V). The only analog input is also limited to a maximum voltage of 3.3V.



We will use the Wemos D1 R2 in the next tutorials on robotic arms. If you’re new to Arduino / ESP8266 programming, you can start with this article. You will learn how to install the ESP8266 libraries and SDK on the Arduino IDE. You will also learn how to use GPIO and WiFi libraries. You will see how to create an HTML interface to your Arduino projects and communicate with a home automation server using HTTP requests. If you have taken a liking to the programming of micro-controllers, here are the latest tutorials published on the subject:
- How to store data on a micro SD card. Arduino code compatible ESP32, ESP8266
- Getting started Arduino. Receive commands from the serial port (ESP32 ESP8266 compatible)
- C++ functions print•println•printf•sprintf for Arduino ESP32 ESP8266. Combine•format → serial port
- C++ String functions. concat•c_srt•indexOf•replace•subString… for Arduino, ESP32, ESP8266
- How to assign a fixed IP to an ESP32 ESP8266 or ESP01 project
- ESP01. Get started with the Arduino or PlatformIO IDE. Which module to choose? Pinout
- ESP01. Which programmer to choose? Modification to switch to Flash Mode
- ESP8266. How to read, write, erase the EEPROM. Calculate the space needed in bytes
- Get started with ArduinoJSON v6, Arduino library for handling JSON objects
- ESP8266, Deep Sleep mode test, wake up with a PIR motion detector
- Which ESP8266 module to choose. Power supply, how to program it in C++ with Arduino IDE, MicroPython, ESP Easy
- #Guide: Which ESP32 development board to choose to develop DIY connected objects
- WebSocket communication with an ESP8266 or Arduino in Python. Test with the ws4py library on Raspberry Pi
- Unpacking the Wemos D1 R2, ESPDuino clone, ESP8266 development board in Arduino Uno format
- ESP8266 + DHT22 + MQTT: make a connected object IoT and include it in Home Assistant
- ESP8266. How to use with the Arduino IDE: Libraries, GPIO, Web Server, Web Client
- How to reinstall the MicroPython firmware on an ESP8266 or ESP32 with the esptool.py script
- Temperature measurement with several DS18B20 probes, Arduino code compatible ESP8266 and ESP32, publication on Domoticz in HTTP
- The firmware ESP Easy Mega arrives on ESP32, test on the Wemos LoLin32 Lite, novelties of the firmware
- Unpacking the Wemos ESP32 Lolin32 Lite, testing the firmware MicroPython with a Raspberry Pi 3
- Wemos LoLin32 Lite, more compact revision of the LoLin32 to $4.90
- ArduinoOTA ESP32: Wi-Fi (OTA) Wireless Update from the Arduino IDE
- ArduinoOTA: Wireless Update (OTA) from the Arduino IDE of ESP8266 Programs
- ESP32. Getting started coding with PlatformIO IDE and Arduino code
- ESP8266, retrieve time from a time server (NTP), elapsed time since last Reset, store time in SPIFFS [Update]
- New LoLin W600-PICO and WeMos d1 mini compatible shields
- ESP8266, Deep Sleep mode test, wake up with a PIR motion detector
- Unpacking Wemos ESP32 LoLin clone with 0.96” SSD1306 monochrome OLED display
- Unpacking the Wemos D1 R2, ESPDuino clone, ESP8266 development board in Arduino Uno format
- Unpacking the Geekcreit PCA9685 I2C Shield 16 Servos + 2 DC motors for Arduino or ESPDuino (ESP8266)