Project owner: lichnak, PeterBay
License: Attribution-ShareAlike 4.0 International; CC BY-SA


Last big news in area of cheap IoT devices is wireless microcontroller ESP8266 produced by chinnes manufaturer Espressif Systems. Initial idea was to build functinal UART bridge with WiFi for avaiable microcontrollers. Nevertheless, ESP8266 microcontroller based on procesosor 32-bit Tensilica Xtensa LX106 running on frequency 80 MHz with integrated WiFi Kit was designed and produced.

NodeMCU is open-source firmware and hardware developer kit, which speeds up IoT prototypes development in few lines of LUA scripts. NodeMCU firmware is made for chip ESP8266 WiFi SOC and brings LIU scripting enviranment naseb on eLua language. NodeMCU developer kit for ESP8266 implements GPIO, PWM, IIC, 1-Wirend a ADC on singleboard.

nodeMCU Firmware NodeMCU Github

Developer Kit v1.0 NodeMCU DevKit 1.0 Github

NodeMCU hardware is equipped by microcontroller unit ESP8266 with embedded WiFi transceiver, as well by chip for communication on USB through serial port 'USB to UART' CP2102-9, Low-Noise LDO Voltage Regulator SPX3819, safe voltage drop with schottky barrier rectifier SS12 and two buttons for reset RST and flash mode FLASH PTS820

Technical parameters

  • CPU: 80/160 MHz Tensilica Xtensa LX106
  • RAM: 64 KiB of instruction RAM, 96 KiB of data RAM
  • Flash: 512M - 4M, depends on model of ESP8266
  • Embedded WiFi transceiver
  • 16 GPIO pins, SPI, I2C, I2S, UART, 10-bit ADC


NODEMCU_DEVKIT documentation and drawings for each nodeMCU part is located on GitHub.


Important warnings

  • Pin D0 (GPIO16) can be use only as gpio read/write and doesn't support interrupt/pwm/i2c/ow.
  • During each reboot, reset or wake activity pin GPIO15 MUST be set to LOW and pin GPIO2 MUST be set to HIGH. Caution requires pin GPIO0, when GPIO0 is set to HIGH then boots into RUN mode. when GPIO0 is set to LOW then boots into FLASH mode.
  • If your intesion is use SLEEP mode, then interconnect pins GPIO16 and RST, and then GPIO16 will be set to LOW after each wake activity.

Programming nodeMCU requires programming model similiar to Node.js with exception of using LUA instead of JavaScript. Best practices is to select for programming models asynchronous and even-driven models.

NodeMCU Documentation page.

NodeMCU firmware can have various modules enabled, which extends capabilities of eLua language used in nodeMCU firmware. NodeMCU firmware is open-source and you can get compiled firmware several ways.

  1. Cloud service with firmware module wizard configuration NodeMCU BUILD
  2. Compile firmware in Docker Image
  3. Create your own linux build environment to compile firmware
  4. Download existing firmware(s) with modules from 3rd party vendors

Let's introduce initial idea about sensors data processing and controlling of remote devices. Main communicatin and controlling compoments are base on technologies TCPIP, MQTT and REST API.

Labka nodeMCU Developer Kit provide guidence through installation of software compoments for development and testing purposes of IoT Infrastructure. Among other things Labka nodeMCU Developer Kit brings comfort into IoT development.

Prototypized hardware and software technology sets to be included in IoT Infrastructure