ESP8266: NodeMCU Dev Kit Review

Introduction

I was very excited when the very same group that developed the NodeMcu Lua firmware announced their ESP8266 Dev board. I ordered one from Banggood and yesterday it arrived after more than a month.

Quality

The PCB seems to be well done. The silk screen is yellow as opposed to the blue one the group posted on Github. Besides that they look identical. Solder points look also well done. An interesting point you can observe on the bottom side of the PCB: there is a gap which probably will increase Wifi sensitivity, since the PCB antenna is in this area.

The upper side of the NodeMCU Dev Kit with an ESP8266 ESP12 mounted

The bottom side of the Dev Kit. You can see the gap on the yellow PCB
which probably should improve Wifi sensitivity

Driver Installation

After the first inspection I wanted to attach it to my Mac running Yosemite (10.10). I then opened ESPlorer to see if it would find the Dev Kit but no luck there, the device just didn’t show up. I went back to the NodeMCU Github page and quickly found out, that they used a rather exotic CH340G as chip to connect the ESP8266 with the USB interface. It seems that this chip is a lot cheaper than the FT232R by FTDI that is usually used for a Serial-To-USB adaptor. I quickly found the driver page of the vendor but this was not directly supporting Yosemite. Ray on his esptoy page linked  to these drivers:

The Mac OS X driver has two folders. One for Yosemite and one for the rest. Installation worked like a charm since the drivers are also signed for Mac OS X. Otherwise you’d have to overwrite the security check in your System Settings (Security Tab).
After installation the Dev Kit showed up as
  • /dev/tty.Repleo-CH341-XXXX
  • /dev/cu.Repleo-CH341-XXXX
Strangely only the cu.Repleo device was found by ESPlorer but I could use it to connect with 9600 baud to the AT firmware. Then the next problem came…

Flashing New Firmware

There are two tiny buttons on the board: one labeled “User” and the other labeled “Flash”. I’m not sure yet what the User button does, but when pressed during power up the Flash button makes the device go into boot mode where it theoretically can receive new firmwares.
I say theoretically because it didn’t work at all at first. Everything I tried just caused the following error:

$ python esptool.py --port /dev/tty.Repleo-CH341-XXXX write_flash 0x00000 nodemcu_latest.bin 
Connecting...
Traceback (most recent call last):
  File "esptool.py", line 471, in 
    esp.connect()
  File "esptool.py", line 149, in connect
    raise Exception('Failed to connect')
Exception: Failed to connect

After a while I gave up and used a normal serial-to-usb adapter to connect to the RX, TX and GND pins directly, without using the CH340G. For power supply I kept the ESP8266 Dev Kit connected to my Mac.
After another reset I could program the Dev Kit from ESPlorer and I have to say, it works like a charm. It’s great not skip a few wires just to connect to USB. With the Dev Kit power supply and serial connection is all in one beautiful USB wire.

Practical Use

The Dev Kit is very convenient because unlike some of the other ESP8266 modules it easily fits into a standard bread board. But there the beauty ends. As you can see on the picture the Dev Kit spans over all 10 pins of a normal bread board and covers them totally. To use them you’d have to use U-shaped bread board jumpers, but that means you have to remove the Dev Kit just to set them into the board. Not very convenient… Compared to that the ESP201 has on each side one pin row left..
The NodeMCU Dev Kit compared to the ESP8266 ESP201:
You can easily see that the Dev Kit covers all pins,
whereas the ESP201 has one row left

Summary

The NodeMCU Dev Kit is a useful development board that is easy to use and reduces the amount of external components that other ESP8266 modules require. That the Dev Kit covers a lot of holes on a standard 10 pin breadboard reduces the usefulness significantly, but you might prefer this problem over the free-floating wires that the ESP01 requires.
Please let me know if you find out how to flash the firmware without help of an external USB-to-Serial converter…

Quick-Links

Posted by Daniel Eichhorn

Daniel Eichhorn is a software engineer and an enthusiastic maker. He loves working on projects related to the Internet of Things, electronics, and embedded software. He owns two 3D printers: a Creality Ender 3 V2 and an Elegoo Mars 3. In 2018, he co-founded ThingPulse along with Marcel Stör. Together, they develop IoT hardware and distribute it to various locations around the world.

8 comments

  1. I have a board that is in the same price range and it has an Esp201. I am not able to use D0 to D3 as gpio also Xpd pin is always connected to vcc. The board ishttp://m.aliexpress.com/item/32266318927.html

    Did you manage to use all 16 pins as Gpio?

  2. Hi,
    I program this chip with nodeMCU firmware programmer and I find it's work fine on USB (Win 8.1).
    But i can't do anything else, i'm not able to use AT command, it alway respond stdin:1: '=' expected near '+'.
    And I don't find how to set softAP.
    I try to put this "
    wifi.setmode(wifi.SOFTAP);
    wifi.ap.config({ssid="test",pwd="12345678"});"
    in the init.lua file, but it don't seem to work.

  3. Can you share your process for flashing the nodemcu firmware from a Mac? I was able to do it from Windows with the flasher tool, but I don't know what tool to use for Mac. I had to go dig an old Windows laptop out of storage. 🙂

  4. I use 2 mini breadboards with the power rails next to each other. Then you can plug the nodemcu across them so you have enough free space for jumper wires.

  5. Thanks for sharing this.
    So far I wasn't able to get V0.9 to work with my MBA, but I used a CH340 driver from some other place. Can't wait to get home and try out the one from raysfiles.

Leave a Reply to AnonymousCancel reply