#22 NodeMCU: Begin with Lua Programming (LED Blinking)

IoT Tutorial #22 [ NodeMCU Tutorials #7 ]
NodeMCU ESP8266 comes with Lua firmware by default.

and if not, then you can change the firmware of NodeMCU ESP8266, steps are given in the previous post.

Here, I will demonstrate, how to run Lua program on NodeMCU ESP8266 for the first time.

Problem Statement:  

Blink LED connected to the NodeMCU using Lua programming.


1. NodeMCU ESP8266 Board
2. micro USB cable
3. LED
4. Resistor - 1k
5. Female to male relimate - 2 Nos.
6. Internet connection

NOTE: LED+ is Connected to D5 of NodeMCU ESP8266


    1. Flash Fresh Lua firmware using NodeMCU Flasher (Click here to Check how) > Close Flasher

    2. Make below mentioned connections:
      LED       NodeMCU (ESP8266)
      LED+  to  D5
      LED-  to  gnd

    3. Keep NodeMCU connected > Open ESPlorer > A new ESPlorer window will open.
      "Port" must be automatically detected there. Set Baud_rate = 9600

      NOTE: If PORT is not getting detected then you need to install drivers:

      Click on "Open" to Check the firmware version of nodemcu.
      then click "RST" button on NodeMCU.

      It will show the Firmware version...

      NodeMCU 0.9.5 build 20150318 powered by Lua 5.1.4

      NOTE: If some program is already uploaded on the nodeMCU then It won't detect the firmware version.

      In that case, 
      Flash Lua (default) firmware (shown in step 3) of previous post and then try to detect it using above steps.

    4. Copy following code and Place it in the left black window of ESPlorer and save it with .lua extension:
      gpio.mode(5, gpio.OUTPUT)
      while true do
          gpio.write(5, gpio.HIGH)
          gpio.write(5, gpio.LOW)

    5. Then Click on "Send to ESP"

    6. LED Connected to D5 pin of NodeMCU should Blink with 1 sec delay....

For Better understanding you can watch demonstration video given below:


Download link is given in the Description of the YouTube video shown below.



Click here to see more codes for Raspberry Pi 3 and similar Family.
Click here to see more codes for NodeMCU ESP8266 and similar Family.
Click here to see more codes for Arduino Mega (ATMega 2560) and similar Family.

Feel free to ask doubts in the comment section. I will try my best to solve it.
If you find this helpful by any mean like, comment and share the post.
This is the simplest way to encourage me to keep doing such work.

Thanks and Regards,
-Akshay P. Daga


  1. Hmm. Isn't this completely opposed to the philosophy of Lua, that relies on coroutines and parallelism ? Delay should best not be used in a blink sketch. Or maybe I didn't grasp what LUA is about ?

Post a Comment
Previous Post Next Post