https://github.com/nodemcu/nodemcu-firmware
download pre-built bin here:
https://github.com/nodemcu/nodemcu-firmware/releases
Change log:
2015-03-18
- update u8glib.
- merge everything to master.
2015-03-17
- add cjson module, only cjson.encode() and cjson.decode() is implemented.
2015-03-15
- bugs fixed: #239, #273.
- reduce coap module memory usage, add coap module to default built.
2015-03-11
- fix bugs of spiffs.
- build both float and integer version latest releases.
- fix tmr.time().
- fix memory leak when DNS fail.
2015-03-10
- update to the recent spiffs.
- add file.fsinfo() api, usage: remain, used, total = file.fsinfo().
- add Travis CI. please download the latest firmware from releases.
- add math lib, partial api work.
- u8g module, ws2812 module default enabled in dev-branch build.
2015-02-13
- add node.compile() api to compile lua text file into lua bytecode file.
- this will reduce memory usage noticeably when require modules into NodeMCU.
- raise internal LUA_BUFFERSIZE from 1024 to 4096.
- lua require("mod") will load "mod.lc" file first if exist.
- build latest pre_build bin.
2015-02-12
- fix float print.
- update spiffs, add file.rename api to file module.
- fix some file system bug. need more tests.
- add support to 8Mbyte, 16Mbyte flash.
- remove node.led() and node.key() api.
- some update to lua_modules and examples.
- build latest pre_build bin.
2015-01-24
migrate to sdk 0.9.5 release.
tmr.time() now return second(not precise yet).
build pre_build bin.
2015-01-23
merge mqtt branch to master.
build pre_build bin.
2015-01-18
merge mqtt module to new branch mqtt from https://github.com/tuanpmt/esp_mqtt.
merge spi module from iabdalkader:spi.
fix #110,set local port to random in client mode.
modify gpio.read to NOT set pin to input mode automatic.
add PATH env with C:\MinGW\bin;C:\MinGW\msys\1.0\bin;C:\Python27 in eclipse project. resolve #103.
2015-01-08
fix net.socket:send() issue when multi sends are called.
NOTE: if data length is bigger than 1460, send next packet AFTER "sent" callback is called.
fix file.read() api, take 0xFF as a regular byte, not EOF.
pre_build/latest/nodemcu_512k_latest.bin is removed. use pre_build/latest/nodemcu_latest.bin instead.
2015-01-07
retrive more ram back.
add api file.format() to rebuild file system.
rename "NodeMcu" to "NodeMCU" in firmware.
add some check for file system op.
2015-01-06
update sdk to 0.9.5.
pre_build bin now compiled by gcc toolchain.
memory/heap usage optimized.
add support for multiple platform and toolchain include eclipse.
combine firmware for 512K, 1M, 2M, 4M flash to one. flash size auto-detected.
***esp8266 flash tools can be used to flash to different flash-size.
2014-12-30
modify uart.on api, when run_input set to 0, uart.on now can read raw data from uart.
serial input now accept non-ascii chars.
fix dev-kit gpio map.
add setip, setmac, sleeptype api to wifi module.
add tmr.time() api to get rtc time and calibration.
2014-12-22
- update to sdk 0.9.4
- opensource
2014-12-19
- Important Re-arrange GPIO MAP due to development kit.
NEW GPIO MAP: https://github.com/nodemcu/nodemcu-firmware#new_gpio_map
- Add bitwise operation module.
- Modify net.socket:connect() api to accept domain name, auto DNS.
- Add firmware for flash size 1Mbytes, 2Mbytes, 4Mbytes.
2014-12-12
- modify wifi.xx.getip() to return nil, if ip is 0.0.0.0.
2014-12-11
- 1, fix uart.setup(), now setup can set pins in other mode back to uart mode.
- 2, add wifi.sta.status() api, to get connection status in station mode.
- 3, modify tmr.now() to return a uint31 rather than uint32. now-=0x80000000 if now>0x7fffffff.
2014-12-09
- increase alarm num in tmr module to 7.
2014-12-08
- add uart.setup(), uart.write() api.
2014-12-07
- 1, add ow(1-wire module), from arduino, and use same api.
- 2, add an 18b20 1-wire example.
- 3, change net.socket.send() payload max len from 256 to 1460.
- 4, modify gpio.mode() api, add internal pullup/float para.
2014-12-04
- fix memory leak issue when input and run from console.
2014-12-02
- 1, fix the heap recover too slow issue, heap will recover in seconds, not minutes.
- 2, modify the return of file.open, return nil if file not exist, true if opend ok.
- 3, move startup version display before doing the init.lua.
- 4, modify wifi.ap.config(), remove the restart at the end of config.
2014-11-30
- 1, modify the max freq of pwm module to 1000.
- 2, modify the max duty cycle of pwm module to 1023.
- 3, add uart module, uart.on("data") api to receive data from uart.
uart.on("data", function(data)
print("receive from uart:", data)
if data=="quit" then uart.on("data",nil) end -- this cancel the callback
end, 0)
2014-11-29
- 1, fix tmr.delay not work when delayed time < 1s.
- 2, fix pwm module not work when freq<77.
2014-11-25
- Fix memory leak for the dns api.
2014-11-24
- 1, Fix the wrong length of wifi password compairison when configuring sta. pwd,64byte. ssid,32byte.
- 2, Fix dns problem, add a dns example to wiki.
2014-11-23
- 1, A temporary and dirty fix to heap drop issue:
to avoid reboot, a tcp-server will NOT accept a connection from client, if there is not enough memory.
-- After 2 days debug, I guess, the reason heap(memory) takes a long time to recover, has been found.
-- It's not because of the Lua machine, but the system memory management part inside SDK.
-- After many many times of malloc/free in different sizes, I guess there will be memory fragment to sort out.
-- Anyway it's only a guess. I will contact with chip vendor to check this out.
- 2, file.list() now returns a table only. will not print result in serial directly.
2014-11-20
- 1, fix tmr.delay to support more than 2s delay, may cause bacon time out, lost connection to AP.
- 2, add tmr.wdclr to clear watchdog counter in chip, use in long time loop.
- 3, fix UDP part of net module.
- 4, add a timeout para to createServer(net.TCP, timeout).
2014-11-19
- 1, add adc module, use adc.read(0) to read adc value, no tests made.
- 2, add wifi.sta.getap() api to wifi.sta module, to get ap list.
2014-11-18
- bug fixed: net.socket:connect() has no effect.
2014-11-18
- bug fixed: as a tcp server, the connection can't closed with :close().
- tcp server: inactive connection will closed by server in 30s (previously 180s).
- add a test api node.input() to put lua chunk into lua interpretor, multi-line supported.
- add a test api node.ouput(function) to direct serial output to a callback function.
- file.readline() now returns line include EOL('\n'), and returns nil when EOF.
2014-11-12
- full version firmware
2014-11-11
- add file.seek() api to file module
- now max 6 pwm channel is supported
2014-11-10
- change log module to file module
- now file operation support multiple read/write
- for now file module only allowed one file opened
2014-11-5
- delete log operation api from node module
- add log module
- modify wifi module api
- modify node.key long_press and short_press default function
- key is triged only when key is released