CircuitPython para la ESP8266

Nosotros ya no estamos dando mantenimiento a CircuitPython en ESP8266. Esta página es solamente por razones históricas. No hay garantía que las instrucciones continúen funcionando.

¿Porqué no damos mantenimiento a las ESP8266?

Correr CircuitPython en las ESP8266 no ha sido una buena experiencia para los usuario. Es difícil enviar archivos al dispositivo porque no tiene USB nativo, y rápidamente te puedes quedar sin memoria RAM (queda menos de lo que crees una vez que activas los componentes para redes). Hemos decidido utilizar las ESP solo como un co-procesador. Específicamente la ESP32 porque tiene muy buenas capacidades de TLS/SSL las cuales son esenciales para las interacciones más básicas.

Si desea utilizar ESP8266, favor mantenga la versión 3.x teniendo en mente que no le damos mantenimiento. ¡También puede usar MicroPython para ESP8266 a la cual le dan mantenimiento!

Si deseas agregar capacidades de WiFi, revisa nuestra guía sobre usar las ESP32/ESP8266 como un co-procesador.

Sobre ESP8266 para CircuitPython (3.x)

Tenemos dos sub-versiones de CircuitPython, la primaria es para tarjetas basadas en ATSAMD21/51 que tienen conectividad nativa por USB. USB nativo significa que la tarjeta aparece como una unidad de disco llamada CIRCUITPY donde puedes almacenar tus archivos.

También hay CircuitPython para tarjetas como las ESP8266 y nRF52832, estos son muy buenos chips con WiFi y Bluetooth integrados, respectivamente. ¡Pero no tienen soporte nativo para USB! Esto significa que no hay forma que el chip aparezca como una unidad de disco. Usted todavía las puede usar con CircuitPython pero es mucho más difícil, así que no las recomendamos para principiantes. Esto es lo que debes saber si utilizas chips no-nativos a CircuitPython:

  • ¡Solo tienes una conexión al REPL! No hay capacidades de teclado y mouse HID u otras interfaces USB.
  • No hay unidades de disco para arrastrar archivos, y los archivos deben ser manipulados con una herramienta como ampy la cual “escribe” tu archivo usando el REPL.
  • Cargar CircuitPython requiere herramientas de línea de comandos

Instalando CircuitPython en una ESP8266

Para utilizar CircuitPython con una ESP8266 primero necesitas cargarlo con el último firmware.

Descargue esptool

Primero instale la herramienta esptool.py que permite subirle firmware a una ESP8266. La forma más sencilla para instalar esta herramienta es con el administrador de paquetes para Python llamado pip . Si aún no lo tiene, debe instalar Python 2.7 (asegúrese de marcar la caja para poner Python en tu sistema cuando instalas Windows) y luego ejecute el siguiente comando en una terminal: pip install esptool

Tome nota que en Mac OSX y Linux puede que necesite ejecutar el comando en conjunto con sudo, de esta manera: sudo pip install esptool

Si recibes un error de que esptoo.py solo trabaja con Python 2.x, trata de ejecutarlo de nuevo pero con pip2 en lugar de pip (lo más probable es que tu sistema esté usando Python 3 y el comando pip se confunde con cual usar).

Descargue la última versión del firmware de CircuitPython

Ahora, descargue el archivo de la última versión del firmware de CircuitPython para ESP8266:

Alistando la ESP8266 para booteo

Ahora necesitas poner a la ESP8266 en modo de subido de firmware. En cada ESP8266 es un poco diferente:

  • Para un módulo ESP8266 puro, necesitas cablear botones hacia tierra para los pines de GPIO0 y RESET. Presionas el botón de GPIO0 (o conectas la línea a tierra) y mientras lo mantienes presionado, presiona y suelta el botón RESET (o conectas y desconectas la línea a tierra), y luego sueltas GPIO0.
  • Para las HUZZAH ESP8266 breakout tiene botones de GPIO0 y RESET integrados en la tarjeta. Presiona GPIO0, luego presiona y suelta RESET (manteniendo presionado GPIO0) y luego suelta GPIO0.

  • Para la ESP8266 HUZZAH en formato Feather no necesitas hacer nada especial para activar el modo de subido de firmware. Esta tarjeta está construida para detectar cuando el puerto serial está abierto para subida y automáticamente configura el módulo de la ESP8266 para recibir el firmware. ¡Asegúrate de instalar el controlador para los SiLabs CP210x en Windows y en Mac OSX para permitir que se vea el puerto de la tarjeta! En Windows quieres el controlador normal VCP, y no el controlador con enumeración serial ('with Serial Enumeration').

Borrar la ESP8266

Es recomendable eliminar la memoria de flash completa de la tarjeta ESP8266 antes de subirle firmware. Ejecute el siguiente comando en una terminal para ejecutar este borrado:

Download: file
esptool.py --port NOMBREPUERTO_ESP8266 erase_flash

Donde NOMBREPUERTO_ESP8266 es la ruta o el nombre del puerto serial que está conectado a la ESP8266. El nombre exacto varía dependiendo del tipo de convertidor serial así que vas a querer revisar la lista de puertos seriales con y sin la tarjeta conectada para encontrar su nombre.

Programar la ESP8266

Ahora, activa de nuevo el modo de subido de firmware en la ESP8266 y ejecuta el siguiente comando para cargarle el archivo de firmware:

Download: file
esptool.py --port NOMBREPUERTO_ESP8266 --baud 115200 write_flash --flash_size=detect 0 firmware.bin

Again set ESP8266_PORTNAME to the path or name of the serial port that is connected to the ESP8266.  In addition set firmware.bin to the name or path to the firmware file you would like to load.

De nuevo, NOMBREPUERTO_ESP8266 es la ruta o nombre del puerto serial que está conectado a la ESP8266. Así mismo, defina el nombre o ruta del archivo de firmware que desea cargar en lugar de firmware.bin .

Una vez que la herramienta termina de subir el firmware (normalmente vas a ver una luz azul en el módulo ESP8266 durante el proceso de subida) presiona el botón RESET en la tarjeta ESP8266 o desconéctala y reconéctala a tu computadora. ¡Ya deberías estar listo para usar el firmware de CircuitPython en la tarjeta!

Toma nota que si observas un error de "detect is not a valid flash_size parameter" (o no es capaz de detectar el tamaño del flash) puede que tengas una versión vieja de esptool.py. Para actualizar a la última versión ejecuta el siguiente comando: pip install --upgrade esptool

¡Suba librerías y archivos usando Ampy!

La diferencia más grande que vas a ver con las ESP8266 es que necesitas una herramienta especial para manipular archivos. Aprende de ampy leyendo esta guía. ¡Es sobre MicroPython, pero para CircuitPython el proceso de instalación y de uso es básicamente idéntico!

¡Otras cosas para tomar en cuenta!

  • El REPL funciona como se esperaría, así que revisa la página de introducción.
  • El almacenamiento de archivos en el chip es compartido con el de CircuitPython, ¡por lo cual si actualizas es posible que pierdas los archivos! Utiliza respaldos.
  • Las librerías y API son los mismos para otras tarjetas para CircuitPython.
  • Toma nota que la ESP8266 no tiene muchos pines disponibles y solo una entrada analógica en el rango de 0.1-0V. No hay puerto de UART disponible (¡porque es usado por el REPL!).
  • No hay salidas analógicas.
  • ¡Puedes usar SPI e I2C! Pero necesitas utilizar bitbangio para crear el bus de objetos.
This guide was first published on Mar 11, 2020. It was last updated on Mar 11, 2020.
This page (CircuitPython para la ESP8266) was last updated on Jul 14, 2020.