El ESP8266 es un microprocesador de bajo coste con Wifi integrado es un procesador completo, con mucha más potencia que la mayoría de modelos de Arduino. Existen distintos módulos que integran el SoC ESP8266. Las características principales de estos módulos son similares y, básicamente, se distinguen en la memoria Flash disponible y en su forma física, que a su vez condiciona el número de pins GPIO que tienen accesibles.
El ESP8266 es un SoC (sytem on chip) fabricado por la compañía china Espressif. Es un chip que integra en un encapsulado un procesador de propósito general con conectividad WiFI completa.
El procesador integrado es un Tensilica L106 de 32-bits con arquitectura RISC que funciona a una velocidad de 80Mhz, con una velocidad máxima de 160Mhz. El ESP8266 no incorpora memoria Flash dentro del SoC, por lo que tiene que ser proporcionada por el módulo en el que se monta. La conexión entre la memoria se realiza por QSPI. La memoria disponible varía entre módulos. Lo normal es encontrar modelos que montan de 1MiB a 8MiB, con un máximo de 16MiB.
Estas son algunas de las características más relevantes:
El firmware permite programar el ESP8266 con LUA, un lenguaje semicompilado basado en C y Perl. El trabajo de la comunidad continúo generando de documentación, tutoriales y herramientas. La liberación por parte de la comunidad de SDK alternativos Open Source para el ESP8266 basados en la toolchain GCC.
Esto permitió la programación con el entorno de Arduino con el ESP8266 Arduino Core. Esto supuso la catapulta definitiva para el ESP8266 en el sector maker, y le permitió beneficiarse del apoyo de la enorme comunidad de amantes de Arduino.
Espressif reaccionó (o vio el potencial, o le dio por apoyar a la comunidad) y generó nuevos SDK con una licencia similar a la MIT. Desde entonces, una gran cantidad de fabricantes han generado placas de desarrollo que integran el ESP8266. Las más conocidas son la NodeMCU y la WeMos.
Tenemos distintos SDK y firmwares disponibles, que permiten programar los módulos con ESP8266 en diferentes lenguajes, MicroPython (lenguaje Python) ESPruino (Javascript), ESP-OPEN-ROT (basado en FreeRTOS) o Mongoose OS, entre otras opciones. En septiembre de 2016 se lanzó el ESP32, un modelo muy superior que solucionaba algunas carencias del ESP8266.