- Descargar el SDK y construir el toolchain:
https://github.com/pfalcon/esp-open-sdk
Instalar los siguientes paquetes:
Código: Seleccionar todo
$ sudo apt-get install make unrar autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python sed
Código: Seleccionar todo
$ git clone https://github.com/pfalcon/esp-open-sdk
$ cd esp-open-sdk
$ make STANDALONE=y
Para actualizar del repositorio con futuros cambios:
Código: Seleccionar todo
$ make clean
$ git pull
$ git submodule update
- Obtener el firmware:
https://github.com/nodemcu/nodemcu-firmware
Para empezar es necesario añadir el directorios donde residen las herramientas de compilacion a la variable PATH:
Código: Seleccionar todo
export PATH=$PATH:<RUTA_ADECUADA>/esp-open-sdk/xtensa-lx106-elf/bin/
Código: Seleccionar todo
$ make
- Flashear el firmware en el modulo:
Necesitaremos varias cosas para realizar el flasheo: el script esptool.py (se descarga con el propio firmware) y un FTDI que funcione a 3.3V (http://www.dx.com)
A la hora de realizar las conexiones hay que tener en cuenta que es necesario poner el modulo en modo upload, para ello conectaremos el pin GPIO0 a tierra tal y como se aprecia en la siguiente imagen:
Nos aseguraremos de estar en el directorio donde hemos descomprimido el firmware y ejecutaremos los siguientes comandos:
Código: Seleccionar todo
esptool.py elf2image app/.output/eagle/debug/image/eagle.app.v6.out
El orden para conectarlo es: primero el FTDI al puerto serie y despues encender la fuente de alimentacion.
Una vez conectado debemos ejecutar el siguiente comando:
Código: Seleccionar todo
esptool.py write_flash 0x00000 app/.output/eagle/debug/image/eagle.app.v6.out-0x00000.bin 0x10000 app/.output/eagle/debug/image/eagle.app.v6.out-0x10000.bin
Para comprobar que todo es correcto apagaremos la fuente de alimentacion y nos conectaremos con el terminal serie para poder observar el arranque. Retiramos el pin a masa que pone el modulo en modo download (GPIO0) y encedemos la fuente de alimentacion. Si todo ha ido bien veremos en la pantalla unas lineas similares a estas:
Código: Seleccionar todo
NodeMCU 0.9.5 build 20150318 powered by Lua 5.1.4
lua: cannot open init.lua
- Cargar un script de LUA:
Podemos utilizar la herramienta luatool: https://github.com/4refr0nt/luatool, un script en Python.
No aseguraremos de tener instalado pyserial:
Código: Seleccionar todo
$ sudo apt-get install python-serial
Para realizar una prueba podemos editar el fichero init.lua que proporcionan en el propio comprimido del script y adecuarlo con los datos de nuestra conexion Wifi:
Código: Seleccionar todo
-- wifi config start
wifi.sta.config("SSID","MI_CONTRASEÑA")
-- wifi config end
Código: Seleccionar todo
./luatool.py --port /dev/ttyUSB0 --src init.lua --dest init.lua --verbose
./luatool.py --port /dev/ttyUSB0 --src main.lua --dest main.lua --verbose
Primero reiniciamos el ESP8266.
Código: Seleccionar todo
node.restart()
Código: Seleccionar todo
dofile("main.lua")
- Restaurar el firmware original:
Si por alguna razon queremos restaurar el firmware original el procedimiento es bastante sencillo.
El firmware lo podemos descargar de esta web, se trata de un comprimido conteniendo un unico archivo .bin:
http://www.electrodragon.com/w/ESP8266_Firmware
Despues conectamos el GPIO0 del modulo a GND para ponerlo en modo descarga y conectamos la alimentacion.
Por ultimo accedemos al directorio del SDK donde tengamos el script sptool.py, copiamos el .bin que hemos descargado antes, y lo ejecutamos de la siguiente manera:
Código: Seleccionar todo
$ ./esptool.py write_flash 0x000000 v0.9.2.2ATFirmware.bin