The first time using a new microcontroller is what I call funstrating, especially if you don’t have clear instructions. We’ve done the hard work of figuring out the NodeMCU drivers and NodeMCU Arduino IDE setup for you. Read on for the two steps that have to be done only once. More helpful info at the end, too.

Installing NodeMCU drivers for USB

This part of the instructions are written for Windows. They’re very similar for OSX and Linux.

Mostly these days devices download and install drivers on their own, automagically. Unfortunately as of writing this post when I plug a brand new NodeMCU into a new Windows 10 installation with a micro USB cable I get a warning message that says “USB Device Not Recognized – Device Descriptor Request Failed”.

Windows doesn’t know how to talk to the USB driver on the NodeMCU so it can’t figure out that the board is a NodeMCU and proceed normally. You’ll need to download the official driver and install it yourself.

The official NodeMCU drivers are here.

Download and extract the files, then run the Windows 10 installer. NodeMCU should now appear as a COM port on your Windows 10 computer.

Please post OSX-specific instructions them in the comments below.

Upgrade Arduino Boards Manager

We’re almost done! This next bit is pretty easy. Arduino has a list of possible microcontrollers (boards) that it can support if you ask it to add support. This does two useful things: it keeps the download smaller for them (less $) and it means new users are not swamped with lots of options they may never use. We need to add NodeMCU to the list of possible microcontrollers and then tell Arduion “Please download and install support for NodeMCU.”

Fire up Arduino IDE and go to File > Preferences.

In the field that says “Additional Boards Manager URLs” add “http://arduino.esp8266.com/stable/package_esp8266com_index.json” and hit OK. Now your Arduino IDE knows that NodeMCU boards exist.

go to Tools > Boards > Boards Manager

There are a lot of boards here! In the search field type “esp8266”, which is the name of the Wifi module at the heart of the NodeMCU.

You can see in my copy I’ve already installed the plugin. Click once anywhere on the description text. A button labelled “install” will appear nearby. The location is inconsistent, and IMHO the button should always be visible if the plugin has not been installed. Click it and the installation process will begin. As of this writing it has to download ~150mb of data. Once it’s done, close the Boards Manager.

To back to Tools > Boards and you will find the list is now quite a bit longer.

Choose your flavor of NodeMCU (probably 1.0 ESP-12E Module) and start coding.

NodeMCU example sketches

Examples for any given board type should appear under File > Examples. Examples are tailored to the type of board that you have currently selected. If you don’t see any NodeMCU or ESP examples, double check that you have Tools > Boards > [your NodeMCU flavor] selected. One time I changed board type to UNO and all my NodeMCU examples vanished. So confusing!

Final thoughts

Sketch upload time is long compared to UNO or Mega. Still worth it!

When using digitalWrite(), use digitalWrite(D0) instead of digitalWrite(0) and so on. Pin mapping on the NodeMCU is weird.

Wifi sketches need the SSID and password of your local Wifi network in order to connect. In the top of most sketches you’ll find a field “….” that should be replaced with your wifi SSID and/or wifi password.

See Also

[products skus=’ELEC-0108, ELEC-0041, ELEC-0111′]