Inexpensive ESP8266 in UNO Form

Two+ weeks ago I purchased an ESP8266 Module board in an Arduino UNO form factor. See Fig.1, below. It cost me $3.20 US including shipping from China, I didn’t need it or even have a use for it, that I can think of, but at that price, why not. By the way, the seller (Aliexpress seller ShengYang Store) has since dropped the price to $3.16. Delivery took 17 days, which isn’t bad – I’ve had Chinese delivery take much longer. The official product name is “WeMos D1 WiFi uno”.

WeMos D1

Fig. 1: WeMos D1

As soon as I received the WeMos D1 package, I wanted to test it. The D1 has a traditional Arduino UNO Power Barrel Connector Jack but also a micro-USB connector.  Obviously, the Power Barrel Connector Jack only supplies power but the micro-USB connector may be used to supply the 5 Volts and also a bidirectional serial communications interface.

The micro-USB connector serial communications interface utilizes a CH340G I/O chip which requires special drivers with Windows but often “just works” with Debian derivative Linux distros, like Mint, which I used to use. This is because Mint is built with the CH341 Linux kernel driver already installed.  I now run Manjaro on my desktop and I discovered that the CH341 Linux kernel driver is NOT pre-installed in Manjaro. The D1 board was detected and I could even get a /dev entry once I built an appropriate /etc/udev/rules.d rule:

SUBSYSTEM=="tty", GROUP="users", MODE="0660", ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="wemos"

This created the /dev/wemos entry but not /dev/ttyUSB0, which I needed for communications. I needed the missing CH341 driver (lsusb indicated that it was absent).

$ pacman -Qs ch341
local/i2c-ch341-dkms 20151116-1
    CH341 USB-I2C adapter driver

Once I installed the ch341 kernel driver the /dev/wemos is created as well as /dev/ttyUSB0, which is actually a link to /dev/wemos.

$ ls -l /dev/ttyUSB0
crw-rw---- 1 root users 188, 0 Sep 25 11:57 /dev/ttyUSB0

So far, so good. Now I could finally load some code to test the wemos D1 board. A little (previously done) Google’ng lead me to Steve Kemp’s website wherein he has posted a great article titled “Absolute WeMos D1 Mini (ESP8266) Basics“. It was just what I needed. Since he uses Debian Linux I did need a very little minor tweaking but, on the whole, his article is perfect for my system. Rather than go into detail about his code and instructions it is best that you read his web page linked above.

The code installed in my $3.20 WeMos D1 board without error using the Arduino IDE. I then connected to the WeMos D1’s serial port at 115,200, via the Arduino IDE’s monitor function,  and pressed reset on the WeMos D1. The displayed text displays the URL to access the web server running on the WeMos D1

Connecting to SSID
WiFi connected
Server started
Use this URL to connect:

The web server running on the WeMos D1 presents two links that turn on/off an LED of the WeMos D1 via the Internet. Very nice! BTW – the logic in Steve Kemp’s source is inverted, at least for this board, and “off” is “on” and visa-versa. I haven’t changed it yet.

Led pin is now: Off

Click here turn the LED on pin 2 ON
Click here turn the LED on pin 2 OFF


I’m not sure what I’ll do with the WeMos D1 but for $3.20 I am impressed.

P.S.: I suspect that the WeMos D1’s low price is because it is may be a discontinued product and the seller is dumping inventory.

This entry was posted in Arduino, ESP8266, wireless. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s