Current Lua downloadable firmware will be posted here

User avatar
By StefanL38
#58396 Hi all,

I tried the custom-firmware build but had no success when I tried to upload the firmware with ESP8266Flasher.exe.

Whenever I flashed INTERNAL://NODEMCU that worked.

So maybe it is a problem with the custom-build-service.
Where can I find the binary-file of the 1.5.4.1-master_20161001 build

On github I only found the source-code. Where can I find the binary-file?
or does anybody know a link of a very actual ESP8266flasher.exe which has a newer firmware than
the

NodeMCU 0.9.5 build 20150318

which is the one that is flashed when I use INTERNAL://NODEMCU

I'm not a SDK-freak I'm not a linux-freak I'm not a python-freak who could use other methods to flash.

I googled to find the right settings for the ESP8266flasher.exe but I did not find any page that would show ALL the details.

Is there an easy way to determine the size of the flash-chip with something easy to use like lualoader?

or as I'm a newbee to all this am I forced to use the INTERNAL://NODEMCU-firmware?

best regards

Stefan
User avatar
By marcelstoer
#58398
StefanL38 wrote:Where can I find the binary-file of the 1.5.4.1-master_20161001 build


You can't: https://github.com/nodemcu/nodemcu-firmware#releases

StefanL38 wrote:I'm not a SDK-freak I'm not a linux-freak I'm not a python-freak who could use other methods to flash.


You don't need to be. Installing Python and esptool.py on Windows shouldn't be too difficult.

Note that the Windows flasher was created by the initial developers of the NodeMCU firmware. It hasn't seen updates since September 2015 and is not maintained by the current NodeMCU firmware team.

StefanL38 wrote:Is there an easy way to determine the size of the flash-chip with something easy to use like lualoader?


With esptool.py there's http://nodemcu.readthedocs.io/en/latest ... flash-size. Once the firmware is flashed you can use node.flashsize().
User avatar
By StefanL38
#58400 Hi Marcel,

thank you for answering.
I was able to flash the new esp_init_data_default.bin and then flashing a custom firmware.
basic things are working now.

I uploaded a lua-script which works fine with 0.9.5. It's a small web-demo showing two pairs of on/off switches which switch to GPOIs.

With the custom firmware I get an errormessage

script1.lua:8: attempt to index global 'net' (a nil value)
stack traceback:
script1.lua:8: in main chunk
[C]: in function 'dofile'
stdin:1: in main chunk
>

@all you specialists:
what's the reason why things get incompatible when using a newer firmware?

are you trying to stay in a small circle of people "who have all the knowledge?"

Where can I find script-examples that will work with the actual firmware?

Does there exist a beginners-guide to nodeMCU-Lua which explains the things for bloody newbees
and does have script-examples that work with the actual firmware?

here's the script that works with the old firmware but not with the new
Code: Select allcat script1.lua

wifi.setmode(wifi.STATION)
wifi.sta.config("myAP","myPW")
print(wifi.sta.getip())
led1 = 3
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
    conn:on("receive", function(client,request)
        local buf = "";
        local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
        if(method == nil)then
            _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
        end
        local _GET = {}
        if (vars ~= nil)then
            for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
                _GET[k] = v
            end
        end
        buf = buf.."<h1> ESP8266 Web Server</h1>";
        buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
        buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF2\"><button>OFF</button></a></p>";
        local _on,_off = "",""
        if(_GET.pin == "ON1")then
              gpio.write(led1, gpio.HIGH);
        elseif(_GET.pin == "OFF1")then
              gpio.write(led1, gpio.LOW);
        elseif(_GET.pin == "ON2")then
              gpio.write(led2, gpio.HIGH);
        elseif(_GET.pin == "OFF2")then
              gpio.write(led2, gpio.LOW);
        end
        client:send(buf);
        client:close();
        collectgarbage();
    end)
end)


best regards

Stefan