ESP8266 first launch in Linux Mint
For flashing firmware you need connect GPIO0 to GND and CH_PD to VCC
I have this TTL converter
Bus 003 Device 026: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port |
But they have 5v output, so i used 5v to 3.3v converter
Prepare notebook for flashing
Go to https://github.com/themadinventor/esptool
and download esptool
wget https://github.com/themadinventor/esptool/archive/master.zip |
install Python pip
apt-get -y install python-pip |
Inzip our master.zip
unzip esptool-master.zip |
Run installing dependency
python setup.py install |
Go to https://github.com/nodemcu/nodemcu-firmware/releases/tag/0.9.6-dev_20150704 and download latest firmware
wget https://github.com/nodemcu/nodemcu-firmware/releases/download/0.9.6-dev_20150704/nodemcu_float_0.9.6-dev_20150704.bin |
Connect USB-Serial controller and see how they discovered by Linux
dmesg ...... [26543.612344] usb 3-2: new full-speed USB device number 26 using xhci_hcd [26543.741216] usb 3-2: New USB device found, idVendor=067b, idProduct=2303 [26543.741234] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [26543.741238] usb 3-2: Product: USB-Serial Controller [26543.741241] usb 3-2: Manufacturer: Prolific Technology Inc. [26543.741908] pl2303 3-2:1.0: pl2303 converter detected [26543.742743] usb 3-2: pl2303 converter now attached to ttyUSB0 .... |
In my case this is /dev/ttyUSB0
Run esptool for flashing
python esptool.py --port /dev/ttyUSB0 write_flash 0x00000 nodemcu_float_0.9.6-dev_20150704.bin .... Connecting... Erasing flash... Writing at 0x00000000... (0 %) .... |
Reboot
Connect to console
screen /dev/ttyUSB0 9600 |
Let’s see how many memory we have
remaining, used, total = file.fsinfo() print("\nFile system info:\nTotal: "..total.." Bytes\nUsed: "..used.." Bytes\nRemaining: "..remaining.." Bytes\n") |
Or erase all local memory
file.format() |
Now let install lua tools
mkdir -p /opt/esp/lua-tool/ cd /opt/esp/luatool git clone https://github.com/4refr0nt/luatool.git |
For start – connect to WiFi
screen /dev/ttyUSB0 9600 |
wifi.setmode(wifi.STATION) wifi.sta.config("<SSID>","<PASS>") ip, nm, gw=wifi.sta.getip() print("\nIP Info:\nIP Address: "..ip.." \nNetmask: "..nm.." \nGateway Addr: "..gw.."\n") |
In homedir luatool we have 2 files: init.lua and main.lua
init.lua
-- init.lua -- -- Global Variables (Modify for your network) ssid = "reverse.kiev.ua" pass = "superpass" print('init.lua ver 1.2') wifi.setmode(wifi.STATION) print('set mode=STATION (mode='..wifi.getmode()..')') print('MAC: ',wifi.sta.getmac()) print('chip: ',node.chipid()) print('heap: ',node.heap()) -- wifi config start wifi.sta.config(ssid,pass) -- wifi config end tmr.delay(5000000) -- Run the main file dofile("main.lua") |
$main.lua
tmr.alarm(0, 1000, 1, function() if wifi.sta.getip() == nil then print("Connecting to AP...") else print('IP: ',wifi.sta.getip()) tmr.stop(0) end end) -- Start a simple http server srv=net.createServer(net.TCP) srv:listen(80,function(conn) conn:on("receive",function(conn,payload) print(payload) conn:send("<h1> Hello, NodeMCU!!! </h1>") end) conn:on("sent",function(conn) conn:close() end) end) |
Write this files to memory
python luatool.py --port /dev/ttyUSB0 --src init.lua --dest init.lua --verbose python luatool.py --port /dev/ttyUSB0 --src main.lua --dest main.lua --verbose |
On restart i have micro http-server that shows text
Hello, NodeMCU!!!
Thanks to http://www.allaboutcircuits.com/projects/how-to-make-an-interactive-tcp-server-nodemcu-on-the-esp8266/
and http://www.whatimade.today/flashing-the-nodemcu-firmware-on-the-esp8266-linux-guide/