ESP-IDF
Marco oficial de desarrollo de IoT
ESP-IDF es el marco de desarrollo de IoT oficial de Espressif para las series de SoC ESP32, ESP32-S, ESP32-C y ESP32-H. Proporciona un SDK autosuficiente para cualquier desarrollo de aplicaciones genéricas en estas plataformas, utilizando lenguajes de programación como C y C++. Actualmente, ESP-IDF alimenta millones de dispositivos en el campo y permite construir una variedad de productos conectados a la red, que van desde simples bombillas y juguetes hasta grandes electrodomésticos y dispositivos industriales.

Open-Source
ESP-IDF está disponible gratuitamente en GitHub. La mayoría de los componentes de ESP-IDF están disponibles en formato fuente bajo la licencia Apache 2.0. Los componentes de terceros están disponibles bajo una licencia permisiva compatible.

Listo para producción
ESP-IDF tiene un proceso de lanzamiento bien definido y una política de soporte que garantiza que los clientes puedan elegir una versión estable y que continúen obteniendo correcciones importantes para su aplicación. Cada versión estable se somete a un riguroso proceso de control de calidad que garantiza la preparación para la producción.

Componentes de software con muchas funciones
ESP-IDF admite una gran cantidad de componentes de software, incluidos RTOS, controladores de periféricos, pila de redes, diversas implementaciones de protocolos y ayudas para casos de uso de aplicaciones comunes. Estos componentes ayudan a los desarrolladores a centrarse en la lógica empresarial, mientras que el SDK proporciona la mayoría de los componentes básicos necesarios para las aplicaciones típicas. Las herramientas de desarrollo de código abierto y disponibles gratuitamente, así como los IDE de Eclipse y VSCode con soporte oficial garantizan la facilidad de uso para los desarrolladores.

Documentación y ejemplos
ESP-IDF viene con una extensa documentación para sus componentes de software no solo a nivel de uso sino también a nivel de diseño. Esto ayuda a los desarrolladores a comprender completamente lo que ofrece ESP-IDF y seleccionar lo que mejor se adapte a sus aplicaciones. ESP-IDF contiene más de 100 ejemplos que explican el uso de sus componentes, así como sus periféricos y características de hardware. Estos ejemplos bien probados y bien mantenidos proporcionan un excelente punto de partida para sus aplicaciones.
Componentes del software
y Características

RTOS Kernel
El kernel de FreeRTOS se modifica para admitir múltiples núcleos, con un asignador de montón basado en capacidades.

Interfaz de programación estándar
Subprocesos POSIX y otras API POSIX, sockets BSD, bibliotecas estándar C/C++ seguras para subprocesos, compatibilidad con sistemas de archivos virtuales.

Controladores de periféricos
SPI, I2C, UART, GPIO, I2S, ADC, DAC, táctil capacitiva, temporizadores, LED y motor PWM, RMT, contador de pulsos, CAN/TWAI, SD/eMMC/SDIO host y SDIO esclavo, controlador Ethernet.

Wi-Fi
El controlador de Wi-Fi es compatible con la certificación Wi-Fi Alliance; también ofrece soporte WPA3, protocolo de malla Wi-Fi patentado, protocolo punto a punto ESP-NOW, protocolo de largo alcance ESP-LR, modo sniffer y protocolo de aprovisionamiento SmartConfig. Ver también: ESP-WIFI-MESH >

Bluetooth and Bluetooth LE
Controlador Bluetooth y dos pilas de host: Bluedroid (modo dual) y NimBLE (solo Bluetooth LE), soporte de malla Bluetooth LE compatible con los estándares, certificación Bluetooth SIG para todos los componentes.

Protocolos de red
Pila LwIP TCP/IP para conectividad IPv4 e IPv6, cliente y servidor DHCP, cliente y servidor TLS (hasta 1.2), cliente y servidor HTTP, cliente HTTP2, cliente WebSocket, MQTT, mDNS, CoAP, ModBus, SNTP, SMTP.

Construir sistemas
Sistema de compilación basado en CMake que admite componentes externos y proyectos de aplicaciones externas.

Gestión de energía
Marco de administración de energía para modos de bajo consumo de MCU y modos de bajo consumo de Wi-Fi y Bluetooth; escalado de frecuencia dinámico, soporte para coprocesador ULP (potencia ultrabaja).

Herramientas de desarrollo
GCC cross toolchain, OpenOCD-based JTAG debugger, static and dynamic footprint analysis, memory leak detector, core dump crash analyser, real-time tracing compatible with Segger SystemView tool, flash and eFuse programmer, device manufacturing tools.

Almacenamiento
Administrador de particiones, almacenamiento de valores clave (NVS) estructurado en registros y tolerante a fallas con soporte de cifrado, soporte de sistema de archivos FAT y SPIFFS.

Soporte IDE
Extensión de Microsoft Visual Studio Code y complemento Eclipse IDE para proyectos ESP-IDF.

Seguridad
Funciones de seguridad respaldadas por hardware, como cifrado flash y arranque seguro, compatibilidad con acelerador criptográfico para RSA, SHA y AES, bibliotecas criptográficas libsodium y micro-ecc.

Aprovisionamiento de red
Marco de aprovisionamiento unificado para la incorporación de dispositivos mediante Bluetooth LE, Wi-Fi y otros mecanismos fuera de banda.