¿Qué framework usar en el ESP32? Arduino, ESP-IDF, MicroPython o Rust

Comparativa honesta de los frameworks del ESP32: Arduino, ESP-IDF, MicroPython, Rust y Lua. Cuál elegir según tu experiencia, tu proyecto y tu tiempo.

También disponible en: EN, ES

Serie Introducción al ESP32 Parte 10 Ver la serie →
Comparativa de frameworks para el ESP32

Aquí llega la pregunta que más se repite: ¿con qué programo el ESP32? La respuesta corta es «depende», y la respuesta útil es esta tabla. Elige por dónde te sitúas y qué quieres conseguir.

Los cinco caminos

FrameworkLenguajeCurvaControlIdeal para
Arduino coreC++Muy bajaMedioEmpezar, prototipos, sensores
ESP-IDFC (C++)AltaTotalProducto, RTOS, rendimiento
MicroPythonPythonMuy bajaBajoAprender, pruebas rápidas
RustRustMedia-altaAltoRobustez, seguridad, no_std
Lua (NodeMCU)LuaBajaBajoLegado, scripts muy simples

Empecemos por lo importante: no hay uno mejor, hay uno mejor para ti ahora mismo.

Arduino core: el que casi todos empiezan

Escribes setup() y loop(), usas pinMode(), digitalWrite() y ya está. Hay miles de librerías y ejemplos.

  • A favor: arrancas en una tarde, comunidad enorme, todo el mundo te puede ayudar.
  • En contra: te oculta cosas (tareas, memoria, particiones), y cuando algo raro pasa, no sabes por dónde empezar.
  • Versión actual: 3.3.11 (construida sobre ESP-IDF 5.5.5).

Úsalo si estás empezando, haces un prototipo o vienes del mundo Arduino.

ESP-IDF: el «de verdad»

Es el SDK oficial de Espressif. Aquí sí controlas todo: FreeRTOS, tareas, colas, particiones, menuconfig, logs, consumo, seguridad.

  • A favor: control total, mejor rendimiento, todo documentado por el fabricante, base de todo lo demás.
  • En contra: más conceptos que aprender y más código para lo mismo.
  • Versión actual: 6.1.

Úsalo si vas a producción, necesitas timing fino o quieres exprimir el hardware.

MicroPython: entender en 5 minutos

Flasheas el firmware, abres un REPL y escribes Python. Perfecto para aprender y para trastear sin compilar.

  • A favor: inmediato, divertido, ideal para enseñar.
  • En contra: más lento, más RAM, y no todos los periféricos están cubiertos.
  • Versión actual: 1.29.

Úsalo si quieres resultados ya, o si vienes de Python.

Rust: potencia con red de seguridad

El ecosistema esp-rs te da dos caminos: esp-idf-hal (sobre ESP-IDF, con std) y esp-hal / embassy (no_std, más ligero y asíncrono).

  • A favor: el compilador te evita errores de memoria y de concurrencia, código muy robusto, async real con embassy.
  • En contra: curva de aprendizaje, toolchain aparte (espup), ecosistema más joven.
  • Versión actual: esp-hal 1.2.0.

Úsalo si te importa la fiabilidad, vienes de Rust o quieres aprender algo serio.

Lua (NodeMCU): el pasado

Fue popular con el ESP8266. Hoy está prácticamente abandonado frente a MicroPython. Solo tiene sentido para mantener proyectos antiguos.

La decisión, en 20 segundos

Tu situaciónEmpieza con
Es mi primer microcontroladorArduino core
Sé programar, pero no C/C++MicroPython
Necesito control y rendimientoESP-IDF
Quiero seguridad y robustezRust (esp-idf-hal)
Voy a un producto a bateríaESP-IDF (o Rust)
Quiero enseñar a alguienMicroPython

Truco: no tienes que elegir para siempre. Mucha gente empieza con Arduino y salta a ESP-IDF cuando el proyecto lo exige. Los conceptos (GPIO, I2C, tareas) se comparten.

Lo que importa más que el framework

  1. Entender el hardware: ADC, pines reservados, consumo.
  2. Saber depurar: logs, printf, medir señales.
  3. Leer el datasheet cuando algo no cuadra.

Con eso, cambiar de framework es un fin de semana. Sin eso, ninguno te salva.

Resumen

  • Arduino: empezar rápido. ESP-IDF: control y producción. MicroPython: aprender y prototipar. Rust: robustez.
  • Lua ya no merece la pena para proyectos nuevos.
  • La versión actual de cada uno está en la tabla de arriba.
  • Elige por tu experiencia y tu objetivo, no por moda.

Siguiente paso: vamos al detalle con el Arduino core, el más usado. O vuelve al hub de la serie.

Entradas relacionadas

↑↓ navegar ↵ abrir Esc cerrar