As says, Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

Lua is small: the Lua interpreter easily fits in under 100 kilobytes including the base libraries. IoT modules are often very memory limited — every kilobyte saved counts.

Lua is fast: independent benchmarks show that Lua is often amongst the fastest interpreted dynamic languages. The Lua interpreter has been extensively tuned for high performance.

NodeLua is the FIRST open source lua based firmware runs on ESP8266. The goal is to make IoT programming easier. Not only an interpreter, but with a Web IDE, Cloud APIs, which makes you creating a real ‘thing’ more robustious and easier. It is currently running on ESP8266 and planned to support more chips, based on the lua language, nodejs-like APIs, but 10 times faster and 100 times smaller than nodejs. Which made it easily be fit into modules with only a few hundred kilobytes of Flash/RAM memory.

Major highlights:

  • Access to all of the resources on the chip: GPIO, PWM, ADC, Timer, WIFI config, TCP server and client. Compile toolchain and the time wasting burning process are no longer needed.
  • A very easy to use web based IDE development environment. You can program and load codes into modules over-the-air, you can even do mass production of your product within the web IDE.
  • Cloud APIs to storage the datas generating by the sensors on the modules(You can post data through only 2 lines of code!), to handle customer accounts, pairing, permissions, sharing devices with family and friends, control actions, triggers, timers send from customer’s phone or other sources.
  • NodeLua is currently being ported to ESP8266 and planned to support more chips, and planning to cross to more major Wifi,BT,ZigBee modules and chips.

Known issues:

  • The RAM size on ESP8266 is really tight for the Lua interpreter, currently there are only ~30KB free memory could be used both by NodeLua and your codes, which means dozens lines of code will used up all the heap space.

You are welcome to be a early bird and help us to improve it!

GitHub page:

Getting start:

Firmware download: