Fork me on GitHub

MicroPython - Instalación en NodeMCU

August 22, 2016

En este post de Adafruit descubrí que existe un firmware de MicroPython para NodeMCU. MicroPython es un proyecto que nació en Kickstarter y que consiste en una reescritura de Python3 para hacerlo más liviano y óptimo para correr en microcontroladores. Al igual que el firmware de Lua también cuenta con un intérprete que se accede vía serial (con screen o picocom) y vía web usando el módulo webrepl.

La instalación es sencilla, primero hay que instalar esptool mediante pip

$ sudo pip install esptool

Luego bajar el último firmware para ESP8266 y finalmente subirlo a NodeMCU borrando previamente el firmware anterior

$ esptool.py --port /dev/ttyUSB0 erase_flash
$ esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=8m -fm dio 0 esp8266-2016-05-03-v1.8.bin

El detalle de cada paso está bien documentado en la doc de MicroPython.

Finalmente se puede acceder a la consola usando screen

$ screen /dev/ttyUSB0 115200
MicroPython v1.8.3-35-g49dd532 on 2016-08-18; ESP module with ESP8266
Type "help()" for more information.
 >>>

Para levantar webrepl hay que primero conectarse a la red local. Aquí hay ejemplos de cómo hacerlo, pero básicamente es

>>> import network, time
>>> wlan = network.WLAN(network.STA_IF)
>>> wlan.active(True)
>>> wlan.connect('your-ssid', 'your-password')
>>> while not wlan.isconnected():
...    time.sleep_ms(50)
...
>>> print(wlan.ifconfig())
('192.168.0.15', '255.255.255.0', '192.168.0.1', '8.8.8.8')

Luego de eso iniciamos webrepl

>>> import webrepl
>>> webrepl.start()
WebREPL daemon started on ws://192.168.4.1:8266
WebREPL daemon started on ws://192.168.0.15:8266
Started webrepl in normal mode

No hace falta bajar el editor, se puede usar la versión online simplemente cambiando la IP.

Python esp8266