nodemcu/nodemcu-firmware

Lua based interactive firmware for ESP8266, ESP8285 and ESP32

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 20 minutes ago
Added to GitGenius on September 8th, 2026
Created on November 20th, 2014
Open Issues & Pull Requests: 119 (+0)
GitHub issues: Enabled
Number of forks: 3,101
Total Stargazers: 7,944 (+0)
Total Subscribers: 531 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

NodeMCU is a Lua-based firmware for ESP8266, ESP8285, and ESP32 microcontrollers that enables interactive programming of WiFi-capable embedded devices.

The firmware addresses the challenge of programming resource-constrained WiFi microcontrollers by providing a high-level Lua scripting environment layered on top of the Espressif SDK. Rather than requiring low-level C development, developers write Lua code that runs on the device. The architecture uses an asynchronous, event-driven programming model similar to Node.js, where many operations accept callback functions. The firmware includes more than 70 built-in C modules and close to 20 Lua modules, with support for a Lua Flash Store that allows up to 256KB of Lua code and read-only constants to execute directly from flash memory, leaving all RAM available for runtime data. The tool supports both floating-point and integer-only builds to optimize for memory constraints.

Developers should choose this tool if they need to rapidly prototype or deploy applications on ESP8266, ESP8285, or ESP32 devices without writing C code. It suits projects requiring wireless connectivity, sensor integration, or IoT applications where development speed matters more than absolute performance. The project originally accompanied NodeMCU development modules but now runs on any ESP module. Pre-built firmware binaries are not distributed; instead, developers use a custom build service to configure firmware with only the modules they need, or build locally following the provided documentation.

Development activity shows consistent maintenance with documentation kept in sync with code through automated rebuilds on every commit, ensuring API documentation remains accurate. The project maintains separate branches for ESP8266 and ESP32 targets, indicating active support for multiple hardware platforms. Community contributions drive the project forward following its transition from initial development to community support.