WeMos D1 WiFi Review – ElectroSchematics.com

Electronics is an expensive hobby. You often need to buy expensive hardware to complete a small hobby project. Fortunately, searching will give you a long list of cheap “retired” parts. If you’re sure community support is still available, select the items you need from the list to start or complete a new project.

Recently, I gathered a dozen “D1 Wi-Fi” boards, advertised as “WeMos D1 R1”, from an Indian online store at a very low price. I’m not sure what to do with it, but that price made me happy. I’m sure the WeMos D1 R1 is a discontinued Wi-Fi board and the store owner is planning to dump his inventory.

Who Makes These Things?

The WeMos D1 R1 is actually a Wi-Fi development board based on ESP8266-12E, which looks like an Arduino Uno board but the core part is the ESP-12E chip. Surprisingly boards purchased almost at the same time had different looks! In some boards, WEMOS D1 is printed, and in some other boards, only D1 Wi-Fi is printed. One of

my D1 Wi-Fi boards has a “ESP8266MOD DOIT.AM” Wi-Fi module at its heart which is in fact the ESP8266-12E Wi-Fi module. The actual name of DOIT is Shenzhen Doctors of Intelligence & Technology Co., Ltd (http://www.doit.am/). As usual with Chinese electronics, there are different versions of the WeMos D1 R1 Wi-Fi boards in the online market.

If you take a deep look at the D1 Wi-Fi board, you will see that it is different from the claimed to be a new version of WeMos D1 R2. That is because the latter (D1 R2) has an ESP8266-12F (Not 12E) Wi-Fi module on board. Note, ESP8266-12F is an enhanced version of ESP8266-12E. Here is a Wiki link to the different ESP8266 Wi-Fi modules https://en.wikipedia.org/wiki/ESP8266

Another noticeable change is the 2×4 thru-hole solder pads for the serial and I2C interface, which is not available on the retired D1(R1) Wi-Fi board.

In summary, the D1 Wi-Fi introduced here is an ESP8266-12E Wi-Fi board, similar to the good old WeMos D1 R1 board that uses the Arduino Uno layout. It’s still very useful as the ESP-12E is a self-contained 802.11 b/g/n Wi-Fi enabled microcontroller featuring the ESP8266 SOC, and hence it can be used as a cheap and easy way to add Wi-Fi connectivity to your microcontroller projects, or can be configured as a powerful standalone Wi-Fi MCU in its own right. However, note that, since the ESP-12E chip has a single analog input, only A0 is available on the D1 boards, and all other analog pins are blank. Likewise, the operating voltage is 3.3V (Not 5V).

As an aside, it seems like WeMos (Lolin) is no longer selling the aforesaid WeMos D1 R1/R2 boards in their official store. We can see only the belittled D1 mini, D1 mini Light and D1 mini Pro versions there https://www.wemos.cc/en/latest/d1/index.html.

Related Articles:

The Quick Breakdown

As the pictures show, what I actually received was a bunch of assorted cheapo D1 Wi-Fi boards. So presumably, some Chinese makers still makes the generic D1 Wi-Fi modules – perhaps both R1 and R2 versions.

Of course, I was curious to know more about the key parts used in my D1 Wi-Fi boards. I found these on a quick physical inspection:

  • ESP8266-12E (DOIT) Wi-Fi Module
  • MCP60021 Dual Op Amp (Rail-to-Rail)
  • CH340 USB to Serial Chip
  • AMS1117-3.3 LDO Voltage Regulator
  • SS34 Schottky Diodes & 4R7 SMD Inductor
  • J3Y NPN Transistors
  • A1SHB P-Channel Power Mosfet
  • SOT23-6 chip marked as GBBAC (sees like a switching voltage regulator)

Getting Started with Arduino IDE

In this tutorial, we’ll be looking at how to setup and test the dropped off version – D1 Wi-Fi board – with the Arduino IDE on Windows. This may also be useful when playing with other Wi-Fi boards/modules.

The D2 Wi-Fi board can be connected to the USB port of a Windows computer through one micro USB data cable – the so called “Android Cable”. When connected properly, you can see it in the Device Manager as shown below. If not, you need to download and install the Windows CH340 driver (https://sparks.gogo.co.nz/assets/_site_/downloads/CH34x_Install_Windows_v3_4.zip).

To test out whether your D1 Wi-Fi board is functioning properly, you need to start the Arduino IDE and upload the following sketch to the D1 Wi-Fi Board. See, what you’ll be testing out is a sample Blink program equivalent to the Hello World.

int ledState = LOW;
unsigned long previousMillis = 0;
const long interval = 1000;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis – previousMillis >= interval) {
previousMillis = currentMillis;
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(LED_BUILTIN, ledState);
}
}

Oh, I almost forgot, you will need to install the package for ESP8266 in your Arduino IDE (if not done already). To do that:

  • Go to FILE → PREFERENCE on Arduino IDE
  • Paste this link against the Additional Boards Manager URLs, seen at the bottom of Preferences screen & click OK (http://arduino.esp8266.com/stable/package_esp8266com_index.json)
  • Open the TOOLS →BOARDS →BOARDS MANAGER
  • Search for ESP8266
  • Select the latest version from the drop down list and install it (this takes a while & needs internet connection)

Once the right package is installed:

  • Go to TOOLS → BOARDS
  • Select the board WEMOS D1 R1 from the list of ESP8266 boards
  • Set UPLOAD speed to 115200
  • Finally, upload the Blink sketch

Once the sketch is uploaded successfully…

… You can then see the built-in blue LED on the Wi-Fi module of your D1 Wi-Fi board starts blinking endlessly!

Don’t Stop Now!

You can simply check the ID of your Wi-Fi chip by uploading the below sketch into the D1 Wi-Fi board. After the sketch has been uploaded, open up the Serial Monitor and set the baud rate to 115200. The ID should be printed in the serial monitor.

void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println(“”);
Serial.println(“”);
Serial.println(“Check ID in:”);
Serial.println(“https://www.wemos.cc/verify_products”);
Serial.printf(“Chip ID = %08Xn”, ESP.getChipId());
Serial.println(“”);
Serial.println(“”);
delay(5000);
}

The photo above is the chip id of the D1 Wi-Fi board that I used for making this post. Below is the MAC address (EC:FA:BC:2F:E4:51) display of the same board, fetched through this code snippet:

#include
void setup(){
Serial.begin(115200);
delay(500);
Serial.println();
Serial.print(“MAC:”);
Serial.println(WiFi.macAddress());
}
void loop(){}

Note that, OUI (Organizational Unique Identifier) ​​is the part of the MAC address that identifies the vendor of the network adapter. The OUI is the first three bytes of the six-byte field and is administered by the IEEE (https://www.pcmag.com/encyclopedia/term/mac-layer). The EC:FA:BC denotes “Espressif Inc”.

That’s all for now. This is not the end, but the beginning of something new. Stay tuned…

Leave a Comment