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
| Framework | Lenguaje | Curva | Control | Ideal para |
|---|---|---|---|---|
| Arduino core | C++ | Muy baja | Medio | Empezar, prototipos, sensores |
| ESP-IDF | C (C++) | Alta | Total | Producto, RTOS, rendimiento |
| MicroPython | Python | Muy baja | Bajo | Aprender, pruebas rápidas |
| Rust | Rust | Media-alta | Alto | Robustez, seguridad, no_std |
| Lua (NodeMCU) | Lua | Baja | Bajo | Legado, 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-hal1.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ón | Empieza con |
|---|---|
| Es mi primer microcontrolador | Arduino core |
| Sé programar, pero no C/C++ | MicroPython |
| Necesito control y rendimiento | ESP-IDF |
| Quiero seguridad y robustez | Rust (esp-idf-hal) |
| Voy a un producto a batería | ESP-IDF (o Rust) |
| Quiero enseñar a alguien | MicroPython |
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
- Entender el hardware: ADC, pines reservados, consumo.
- Saber depurar: logs,
printf, medir señales. - 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.