[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6329":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":22,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},6329,"nodemcu-firmware","nodemcu\u002Fnodemcu-firmware","nodemcu","Lua based interactive firmware for ESP8266, ESP8285 and ESP32","https:\u002F\u002Fnodemcu.readthedocs.io",null,"C",7928,3113,533,100,0,14,41,"MIT License",false,"release",true,[24,25,26,27,28,29,7,30],"esp32","esp8266","esp8285","espressif","firmware","lua","spiffs","2026-06-12 02:01:18","# NodeMCU 3.0.0\n> Lua-based firmware for ESP8266 WiFi SOC\n\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Fnodemcu\u002Fnodemcu-firmware](https:\u002F\u002Fimg.shields.io\u002Fgitter\u002Froom\u002Fbadges\u002Fshields.svg)](https:\u002F\u002Fgitter.im\u002Fnodemcu\u002Fnodemcu-firmware?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![CI](https:\u002F\u002Fgithub.com\u002Fnodemcu\u002Fnodemcu-firmware\u002Factions\u002Fworkflows\u002Fbuild.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fnodemcu\u002Fnodemcu-firmware\u002Factions\u002Fworkflows\u002Fbuild.yml)\n[![Documentation Status](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-release-yellow.svg?style=flat)](http:\u002F\u002Fnodemcu.readthedocs.io\u002Fen\u002Frelease\u002F)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg?style=flat)](#license)\n\nNodeMCU is an open source [Lua](https:\u002F\u002Fwww.lua.org\u002F) based firmware for the [ESP8266 WiFi SOC from Espressif](https:\u002F\u002Fwww.espressif.com\u002Fen\u002Fproducts\u002Fsocs\u002Fesp8266) and uses an on-module flash-based [SPIFFS](https:\u002F\u002Fgithub.com\u002Fpellepl\u002Fspiffs) file system. NodeMCU is implemented in C and is layered on the [Espressif NON-OS SDK](https:\u002F\u002Fgithub.com\u002Fespressif\u002FESP8266_NONOS_SDK).\n\nThe firmware was initially developed as is a companion project to the popular ESP8266-based [NodeMCU development modules]((https:\u002F\u002Fgithub.com\u002Fnodemcu\u002Fnodemcu-devkit-v1.0)), but the project is now community-supported, and the firmware can now be run on _any_ ESP module.\n\n**The NodeMCU `release` and `dev` branches target the ESP8266. The `dev-esp32` branch targets the ESP32.**\n\n## Summary\n\n- Easy to program wireless node and\u002For access point\n- Based on Lua 5.1.4 or Lua 5.3 but without `debug`, `io`, `os` and (most of the) `math` modules\n- Asynchronous event-driven programming model\n- More than **70 built-in C modules** and **close to 20 Lua modules**\n- Firmware available with or without floating point support (integer-only uses less memory)\n- Up-to-date documentation at [https:\u002F\u002Fnodemcu.readthedocs.io](https:\u002F\u002Fnodemcu.readthedocs.io)\n\n### LFS support\n\nIn July 2018 support for a Lua Flash Store (LFS) was introduced. LFS  allows Lua code and its associated constant data to be executed directly out of flash-memory; just as the firmware itself is executed. This now enables NodeMCU developers to create **Lua applications with up to 256Kb** Lua code and read-only constants executing out of flash. All of the RAM is available for read-write data!\n\n## Programming Model\n\nThe NodeMCU programming model is similar to that of [Node.js](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FNode.js), only in Lua. It is asynchronous and event-driven. Many functions, therefore, have parameters for callback functions. To give you an idea what a NodeMCU program looks like study the short snippets below. For more extensive examples have a look at the [`\u002Flua_examples`](lua_examples) folder in the repository on GitHub.\n\n```lua\n-- a simple HTTP server\nsrv = net.createServer(net.TCP)\nsrv:listen(80, function(conn)\n\tconn:on(\"receive\", function(sck, payload)\n\t\tprint(payload)\n\t\tsck:send(\"HTTP\u002F1.0 200 OK\\r\\nContent-Type: text\u002Fhtml\\r\\n\\r\\n\u003Ch1> Hello, NodeMCU.\u003C\u002Fh1>\")\n\tend)\n\tconn:on(\"sent\", function(sck) sck:close() end)\nend)\n```\n```lua\n-- connect to WiFi access point\nwifi.setmode(wifi.STATION)\nwifi.sta.config{ssid=\"SSID\", pwd=\"password\"}\n```\n\n## Documentation\n\nThe entire [NodeMCU documentation](https:\u002F\u002Fnodemcu.readthedocs.io) is maintained right in this repository at [\u002Fdocs](docs). The fact that the API documentation is maintained in the same repository as the code that *provides* the API ensures consistency between the two. With every commit the documentation is rebuilt by Read the Docs and thus transformed from terse Markdown into a nicely browsable HTML site at [https:\u002F\u002Fnodemcu.readthedocs.io](https:\u002F\u002Fnodemcu.readthedocs.io).\n\n\nPages:\n\n- How to [build the firmware](https:\u002F\u002Fnodemcu.readthedocs.io\u002Fen\u002Frelease\u002Fbuild\u002F)\n- How to [flash the firmware](https:\u002F\u002Fnodemcu.readthedocs.io\u002Fen\u002Frelease\u002Fflash\u002F)\n- How to [upload code and NodeMCU IDEs](https:\u002F\u002Fnodemcu.readthedocs.io\u002Fen\u002Frelease\u002Fupload\u002F)\n- API documentation for every module\n\n\n## Releases\n\nDue to the ever-growing number of modules available within NodeMCU, pre-built binaries are no longer made available. Use the automated [custom firmware build service](http:\u002F\u002Fnodemcu-build.com\u002F) to get the specific firmware configuration you need, or consult the [documentation](http:\u002F\u002Fnodemcu.readthedocs.io\u002Fen\u002Frelease\u002Fbuild\u002F) for other options to build your own firmware.\n\nThis project uses two main branches, `release` and `dev`. `dev` is actively worked on and it's also where PRs should be created against. `release` thus can be considered \"stable\" even though there are no automated regression tests. The goal is to merge back to `release` roughly every 2 months. Depending on the current \"heat\" (issues, PRs) we accept changes to `dev` for 5-6 weeks and then hold back for 2-3 weeks before the next snap is completed.\n\nA new tag is created every time the `dev` branch is merged back to `release`. They are listed in this repo's [releases](https:\u002F\u002Fgithub.com\u002Fnodemcu\u002Fnodemcu-firmware\u002Freleases).\n\nTag names follow the `\u003CSDK-version>-release_yyyymmdd` pattern.\n\n## Support\n\nSee [https:\u002F\u002Fnodemcu.readthedocs.io\u002Fen\u002Frelease\u002Fsupport\u002F](https:\u002F\u002Fnodemcu.readthedocs.io\u002Fen\u002Frelease\u002Fsupport\u002F).\n\n## License\n\n[MIT](\u002FLICENSE) © [zeroday](https:\u002F\u002Fgithub.com\u002FNodeMCU)\u002F[nodemcu.com](http:\u002F\u002Fnodemcu.com\u002Findex_en.html)\n","NodeMCU 是一个基于 Lua 的开源固件，专为 ESP8266、ESP8285 和 ESP32 WiFi SoC 设计。它使用 C 语言编写，并基于 Espressif NON-OS SDK 构建，支持 SPIFFS 文件系统。NodeMCU 提供了超过70个内置的 C 模块和近20个 Lua 模块，采用异步事件驱动编程模型，适用于无线节点或接入点的快速开发。此外，通过引入 Lua Flash Store (LFS) 技术，NodeMCU 可以直接从闪存中执行 Lua 代码及其常量数据，最大可达256Kb，从而释放更多RAM用于读写数据。此项目非常适合物联网设备开发者，尤其是那些需要高效利用资源且易于编程的小型智能硬件应用场景。",2,"2026-06-11 03:06:29","top_language"]