Guía Paso a Paso: Instalación de MicroPython y Programación de la ESP8266 NodeMCU Amica en Linux Mint
Autor: AlexanderArias Londoño
Clase: IoT
Fecha: 6 de octubre de 2026
La tarjeta de desarrollo ESP8266 NodeMCU Amica es una plataforma versátil y económica ampliamente utilizada en proyectos de Internet de las Cosas (IoT). Programar este dispositivo con MicroPython bajo Linux Mint permite crear aplicaciones empotradas eficientes utilizando la sintaxis de Python.
Esta guía paso a paso abarca desde la preparación inicial de Linux Mint y la resolución de conflictos con puertos serie, hasta el flasheado del firmware, la resolución de problemas comunes como el bucle de reinicio (boot loop) y la configuración de Thonny IDE para ejecutar scripts interactivos.
1. Preparación del Sistema Operativo Linux Mint
Antes de conectar la tarjeta ESP8266, es necesario preparar el entorno de Linux Mint para asegurar la correcta detección del convertidor serie USB (generalmente los chips CP2102 o CH340).
Paso 1.1: Diagnóstico del hardware USB con lsusb
Conecte la tarjeta ESP8266 a la computadora utilizando un cable USB que soporte transmisión de datos. Abra una terminal (Ctrl + Alt + T) y ejecute:
lsusb
Examine la lista desplegada. Debe identificar una línea similar a una de las siguientes:
Bus 001 Device 005: ID 10c4:ea60 Silicon Labs CP210x UART BridgeBus 001 Device 004: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Nota de diagnóstico: Si no aparece ninguna línea nueva al conectar la placa, reemplace el cable USB. Muchos cables comerciales económicos solo incluyen líneas de alimentación eléctrica y carecen de hilos de datos.
Paso 1.2: Eliminación del servicio conflictivo brltty
En distribuciones basadas en Debian y Ubuntu como Linux Mint, el servicio del sistema brltty
(diseñado para lectores de pantalla Braille) intercepta automáticamente
los convertidores USB-Serie al detectarlos, provocando que el puerto /dev/ttyUSB0 desaparezca a los pocos segundos de ser creado.
Para eliminar esta interferencia, desinstale el paquete ejecutando:
sudo apt remove brltty
Paso 1.3: Asignación de permisos de acceso serie (dialout)
Por defecto, los dispositivos serie en Linux pertenecen al grupo de sistema dialout. Para interactuar con la tarjeta sin requerir permisos de superusuario (sudo), agregue su usuario actual al grupo:
sudo usermod -aG dialout $USER
Importante: Debe cerrar la sesión en Linux Mint y volver a iniciarla para que el sistema aplique el cambio de grupo.
Paso 1.4: Confirmación del puerto /dev/ttyUSB0
Reconecte la tarjeta a la computadora y verifique la creación del puerto serie:
ls /dev/ttyUSB*
Si la terminal responde con /dev/ttyUSB0, la comunicación física está correctamente establecida.
2. Creación del Entorno Virtual de Python e Instalación de esptool
Para cumplir con las especificaciones de gestión de paquetes de
Python en Linux Mint (PEP 668), la herramienta oficial de flasheado de
Espressif (esptool) debe instalarse dentro de un entorno virtual aislado.
- Cree un entorno virtual denominado
esp_enven su carpeta personal:python3 -m venv esp_env - Active el entorno virtual:
(Verá la etiquetasource esp_env/bin/activate(esp_env)al inicio del indicador de la terminal). - Instale o actualice
esptool:pip install esptool
3. Descarga y Flasheado del Firmware de MicroPython
A diferencia de los microcontroladores ESP32 (donde la memoria flash se graba a partir de la dirección 0x1000), en la arquitectura ESP8266 la imagen del firmware debe escribirse comenzando exactamente en la dirección 0x0.
Paso 3.1: Descarga del firmware binario
- Visite la sección oficial de descargas de MicroPython para ESP8266 en micropython.org/download/esp8266.
- Descargue la versión estable más reciente en formato
.biny guarde el archivo en su carpeta~/Descargas.
Paso 3.2: Borrado de la memoria flash
Con el entorno (esp_env) activo en la terminal, elimine el contenido previo de la memoria flash de la tarjeta:
esptool --port /dev/ttyUSB0 --chip esp8266 erase-flash
Espere aproximadamente 10 segundos hasta que la terminal confirme Flash memory erased successfully.
Paso 3.3: Grabación del firmware en modo dout
Muchas tarjetas NodeMCU Amica cuentan con memorias flash SPI que requieren el modo de comunicación dout (Dual Output) y una asignación explícita del tamaño de memoria (4MB). Usar otros modos (como dio o qio) puede causar que la placa falle al arrancar.
Ejecute el siguiente comando de grabado:
esptool --port /dev/ttyUSB0 --chip esp8266 write-flash --flash-mode dout --flash-size 4MB 0x0 ~/Descargas/ESP8266_GENERIC-*.bin
Sugerencia de conexión: Si la terminal muestra el mensaje Connecting......_____, mantenga presionado el botón físico FLASH (o BOOT) de la placa durante 2 segundos hasta que comience el progreso de transferencia.
Al llegar al 100%, desconecta el cable USB del ordenador, espera 5 segundos y vuelve a conectarlo para realizar un reinicio eléctrico completo del chip.
4. Diagnóstico de Caracteres Extraños y Bucle de Reinicio (Boot Loop)
Si al intentar conectar la tarjeta observa que el LED azul parpadea
rápidamente de forma ininterrumpida y en la terminal aparecen caracteres
raros o símbolos corruptos ($plN|...), la placa se encuentra en un bucle de reinicio.
¿Por qué ocurren los caracteres extraños?
Al encenderse o reiniciar, el gestor de arranque (bootloader) del chip ESP8266 emite mensajes de diagnóstico a una velocidad nativa de 74880 baudios. Como los entornos como Thonny escuchan a la velocidad estándar de 115200 baudios, esa diferencia de velocidad provoca que el texto legible se convierta en símbolos extraños.
Verificación del diagnóstico con miniterm
Para leer los mensajes de diagnóstico reales del bootloader y confirmar la causa del reinicio, puede abrir una terminal a 74880 baudios:
python3 -m serial.tools.miniterm /dev/ttyUSB0 74880
- Si observa texto legible indicando el estado del sistema, presione
Ctrl + ](o cierre la terminal) para salir deminiterm. - Si confirma que la tarjeta se reinicia continuamente, la causa principal es haber flasheado sin la opción
--flash-mode dout. Repita el Paso 3.2 y Paso 3.3 asegurándose de incluir--flash-mode dout.
5. Configuración de Thonny IDE
Una vez grabado el firmware correctamente y realizado el reinicio eléctrico, configure el entorno Thonny:
- Inicie la aplicación Thonny en Linux Mint.
- Vaya al menú superior Herramientas > Opciones... (Tools > Options...).
- Seleccione la pestaña Intérprete (Interpreter).
- En la opción de microcontrolador, seleccione MicroPython (ESP8266).
- En la opción de puerto, seleccione /dev/ttyUSB0.
- Presione Aceptar.
Haga clic en la consola inferior (Shell) de Thonny y presione Ctrl + C o Ctrl + D. Verá aparecer la consola interactiva con el prompt >>>:
MicroPython v1.2x.x on 2026-xx-xx; ESP module with ESP8266
Type "help()" for more information.
>>>
6. Pruebas de Funcionamiento y Control de E/S con machine
En la tarjeta ESP8266 NodeMCU Amica, el LED azul integrado en la placa está conectado al pin GPIO 2 (marcado en la serigrafía como D4).
Mapeo de estados y lógica invertida
El circuito del LED integrado en la ESP8266 funciona con lógica invertida:
| Nivel Lógico | Estado en MicroPython | Nivel de Voltaje | Estado del LED |
|---|---|---|---|
| 0 (LOW) | led.value(0) | 0 V (GND) | ENCENDIDO |
| 1 (HIGH) | led.value(1) | 3.3 V | APAGADO |
Código de prueba interactivo (Shell)
Escriba las siguientes órdenes directamente en la consola >>> de Thonny para encender y apagar el LED:
import machine
# Configurar GPIO 2 como salida digital
led = machine.Pin(2, machine.Pin.OUT)
# Encender el LED azul integrado
led.value(0)
# Apagar el LED azul integrado
led.value(1)
Programa autónomo de parpadeo (main.py)
Para que la tarjeta ejecute la rutina de forma automática cada vez que se conecte a la energía sin depender de la computadora:
-
En Thonny, cree un archivo nuevo (Archivo > Nuevo).
-
Copie el siguiente código:
import machine import time # Pin GPIO 2 correspondiente al LED de la NodeMCU led = machine.Pin(2, machine.Pin.OUT) # Bucle principal de parpadeo while True: led.value(0) # Encender LED (0V / LOW) time.sleep(1) # Esperar 1 segundo led.value(1) # Apagar LED (3.3V / HIGH) time.sleep(1) # Esperar 1 segundo -
Guarde el archivo seleccionando como destino Dispositivo MicroPython (MicroPython device).
-
Asígnele el nombre exacto
main.py.
Al presionar el botón de reinicio RST de la NodeMCU Amica, el programa main.py se iniciará automáticamente, haciendo parpadear el LED de forma indefinida.