⏱️ Lectura: 11 min
Resumen ejecutivo: ESP-Drone es el firmware oficial de Espressif —los creadores del chip ESP32— para construir un mini-cuadricóptero controlado por Wi-Fi desde el celular o un gamepad. El proyecto, hospedado en github.com/espressif/esp-drone, tiene 1,670 estrellas, 408 forks y se publica bajo GPL-3.0 —porque su núcleo es código portado desde Crazyflie, el quadcopter educativo de Bitcraze—. Está vivo pero con soporte oficial limitado desde diciembre de 2022, último commit en julio de 2025. No es un producto plug-and-play: requiere armar hardware, soldar componentes, y entender FreeRTOS. Pero a cambio, te deja una base GPL para construir cualquier dron Wi-Fi que se te ocurra —desde un proyecto educativo STEAM hasta un enjambre de robots con visión artificial.
📑 En este artículo
- ¿Qué es ESP-Drone? — Contexto y origen
- Métricas verificadas (GitHub API, consulta 2026-04-27)
- Stack tecnológico
- Arquitectura: cómo funciona internamente
- Instalación (Linux / macOS / Windows)
- Uso básico — Primer vuelo
- Integración con otras herramientas
- Discusión técnica honesta
- Conclusión y casos de uso
- Fuentes
¿Qué es ESP-Drone? — Contexto y origen
ESP-Drone es firmware (no hardware): el código que ejecuta el microcontrolador ESP32 / ESP32-S2 / ESP32-S3 montado en una placa de drone para controlar motores, leer sensores y comunicarse con la app por Wi-Fi.
Lo creó Espressif Systems —la empresa china detrás de los chips ESP32— en junio de 2020, tomando como base el firmware del Crazyflie de Bitcraze (el cuadricóptero suizo de palma de mano popular en investigación robótica). El equipo de Espressif lo adaptó para que corriese sobre sus propios SoCs en lugar del STM32F405 original del Crazyflie.
El proyecto sirve principalmente para tres usos:
- Educación STEAM: dado lo pequeño y accesible del ESP32, un dron completo puede salir por menos de 30-40 USD en componentes —comparado con los 300+ USD del Crazyflie original o los 600+ USD de plataformas profesionales como PX4 sobre Pixhawk—.
- Investigación de robótica de bajo costo: la documentación abierta + GPL3 permiten experimentar con algoritmos de control, fusión de sensores y enjambres.
- Base para productos derivados: empresas pueden forkear y modificar manteniendo el cumplimiento GPL3 (publicando los cambios).
Un matiz de gobernanza relevante: Espressif declaró soporte limitado sobre el proyecto desde diciembre de 2022. Esto significa que aceptan Pull Requests pero no garantizan respuesta a issues. Es código mantenido por la comunidad con bendición de Espressif.
Métricas verificadas (GitHub API, consulta 2026-04-27)
| Métrica | Valor | Notas |
|---|---|---|
| Stars | 1,670 | Verificado vía gh api repos/espressif/esp-drone |
| Forks | 408 | Alta tasa fork/star (24%) — señal de uso real, no solo curiosidad |
| Open issues | 33 | Razonable para proyecto con soporte limitado |
| Contribuidores | 9 | Bus factor bajo, ver discusión |
| Subscribers | 48 | Sigues activos del repo (no confundir con watchers_count del API, que devuelve stars) |
| Último commit | 2025-07-24 | Bug fix de inicialización del sensor MPU6050 |
| Licencia | GPL-3.0 | Heredada de Crazyflie — atención: viral en redistribución |
| Releases tag | 0 | Sin versionado formal — solo commits en master |
| Tamaño | ~47 MB | 48,388 KB según API |
| Topics | drone, esp32, quadcopter |
|
| Branch default | master |
|
| Wiki | Sí | Activo |
| Discussions | Sí | Activo |
| Archivado | No | Vivo |
Stack tecnológico
ESP-Drone es 100% C —no hay C++, no hay Rust, no hay Python en el firmware—. Esto es coherente con el ecosistema embebido de Espressif.
| Componente | Tecnología | Rol |
|---|---|---|
| Microcontrolador | ESP32 / ESP32-S2 / ESP32-S3 | Cómputo + Wi-Fi integrados |
| Framework | ESP-IDF release/v5.0 | SDK oficial Espressif |
| RTOS | FreeRTOS | Tareas con prioridad para control en tiempo real |
| Núcleo lógico | Crazyflie firmware (tag 2021.01, commit b448553) |
Fusión de sensores + control PID |
| DSP | esp32-lin/dsp_lib (commit 6fa39f4c) |
Filtros y matemática numérica |
| Protocolo | CRTP (Crazy RealTime Protocol) | Comunicación con apps y cfclient |
| Apps móviles | iOS + Android | Repos separados, también GPL3 |
| Cliente PC | cfclient (Python) | Debug + tuning vía crazyflie-clients-python (fork) |
Sensores típicos del hardware referencia (placa principal + extensiones):
| Sensor | Función | Interfaz |
|---|---|---|
| MPU6050 / MPU6886 | IMU (acelerómetro + giroscopio de 6 ejes) | I²C (MPU6050) o SPI (MPU6886, en la placa oficial v1.2) |
| MS5611 | Barómetro (altitud por presión) | I²C |
| HMC5883 | Magnetómetro (referencia de yaw absoluto / heading) | I²C |
| PMW3901 | Optical flow (posición indoor) | SPI |
| VL53L0X / VL53L1X | Time-of-flight (altura precisa, según deck) | I²C |
Los tres últimos —barómetro, magnetómetro y los de visión— van en placas de extensión opcionales para vuelos avanzados (height-hold, position-hold, hover). El IMU principal ya viene en la placa main — alcanza para vuelo “stabilize” básico. Todos los I²C corren en el bus principal del MCU; aunque el MPU6050 tiene un bus auxiliar para esclavos, ESP-Drone no lo usa para el barómetro ni el magnetómetro.
Arquitectura: cómo funciona internamente
┌─────────────────────────────────────────────────────────┐
│ APP (iOS/Android) o cfclient (PC) │
│ ↕ │
│ Wi-Fi (CRTP) │
│ ↕ │
│ ┌────────────────── ESP32-S2 (Wi-Fi + cómputo) ────┐ │
│ │ │ │
│ │ FreeRTOS scheduler (tareas con prioridades) │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Stabilizer│ │ CRTP │ │ Sensors │ │ │
│ │ │ (control)│ │ (radio) │ │ (IMU…) │ │ │
│ │ └─────┬────┘ └─────┬────┘ └─────┬────┘ │ │
│ │ └─────────────┼─────────────┘ │ │
│ │ ↓ │ │
│ │ Mixer + PWM 4 motores │ │
│ └───────────────────────┼──────────────────────────┘ │
│ ↓ │
│ 4 ESC + 4 motores │
└─────────────────────────────────────────────────────────┘
El firmware corre como un conjunto de tareas FreeRTOS con prioridades. Las críticas (estabilizador, lectura del IMU) se ejecutan por defecto a 500 Hz —el upstream Crazyflie corre el lazo interno a 1 kHz, pero ESP-Drone lo redujo para acomodar el procesador del ESP32-S2—. Las tareas menos críticas (logging, comunicación con la app) corren a 100 Hz o menos.
El modo de operación por defecto es:
1. Al encender, el ESP32-S2 levanta un AP Wi-Fi propio (SSID ESP-DRONE_XXXX, contraseña 12345678 por defecto).
2. El usuario conecta su celular o PC al AP.
3. La app envía comandos CRTP sobre UDP (puerto 2390); no se usa TCP por la latencia que introduce.
4. El estabilizador interpreta esos comandos como roll, pitch, yaw, thrust (los 4 ejes clásicos del cuadricóptero).
5. El mixer convierte esos 4 ejes en 4 señales PWM. En la versión brushed/coreless del hardware referencia, esas señales van a MOSFETs que conmutan los motores directos; en variantes brushless, a 4 ESCs convencionales.
6. Los lazos PID internos corrigen vía IMU y mantienen al dron estable en el aire.
Instalación (Linux / macOS / Windows)
ESP-Drone se compila y flashea con ESP-IDF v5.0, igual que cualquier proyecto ESP32.
Linux / macOS
# 1. Clonar ESP-IDF v5.0
git clone -b release/v5.0 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh
# 2. Activar entorno (cada terminal nueva)
. ./export.sh
# 3. Clonar ESP-Drone
git clone https://github.com/espressif/esp-drone.git
cd esp-drone
# 4. Configurar el target (S2 es el más probado)
idf.py set-target esp32s2
idf.py menuconfig # opcional — ajustar pines, sensores, etc.
# 5. Compilar y flashear
idf.py build
idf.py -p /dev/ttyUSB0 flash monitor
Windows (PowerShell)
# Instalar el ESP-IDF Tools Installer desde:
# https://dl.espressif.com/dl/esp-idf/
# Tras instalar, abrir "ESP-IDF 5.0 PowerShell" y:
git clone https://github.com/espressif/esp-drone.git
cd esp-drone
idf.py set-target esp32s2
idf.py build
idf.py -p COM3 flash monitor
Docker (universal)
docker run --rm -v $PWD:/project -w /project \
-u $UID -e HOME=/tmp \
--device=/dev/ttyUSB0 \
espressif/idf:release-v5.0 \
idf.py build flash
Uso básico — Primer vuelo
Con el firmware flasheado y el hardware armado, el primer despegue toma menos de cinco minutos:
- Carga la batería LiPo (típicamente 1S 3.7V 350mAh).
- Enciende el dron — el LED parpadea en rojo.
- Desde el celular: descarga ESP-Drone en App Store o Play Store (código fuente iOS / Android).
- Conéctate al Wi-Fi
ESP-DRONE_XXXXcon password12345678. - Abre la app y pulsa “Connect” — cuando conecta, el LED se vuelve verde.
- Sube ligeramente el slider de Thrust para despegar.
- Mueve los joysticks virtuales para roll, pitch y yaw.
Los valores por defecto recomendados son: – Modo: Mode2 (estándar del hobby RC: yaw+thrust en stick izquierdo, roll+pitch en derecho) – Deadzone: 0.2 – Max roll/pitch angle: 15° – Max yaw angle: 90°/s – Max thrust: 90% / Min thrust: 25%
Para tuning avanzado, cfclient sobre PC permite ver los datos del IMU en tiempo real y ajustar parámetros PID.
Integración con otras herramientas
ESP-Drone encaja en varios stacks abiertos:
- MAVLink / QGroundControl: no soportado nativamente —usa CRTP—, pero hay forks comunitarios que añaden compatibilidad parcial.
- ROS / ROS2: vía crazyflie_ros puede integrarse como driver desde ROS, ya que el protocolo CRTP es el mismo del Crazyflie.
- Computer Vision: el ESP32-S3 tiene un par de variantes con cámara (ESP32-S3-EYE) que permiten experimentos de seguimiento visual, aunque la integración requiere trabajo de bajo nivel.
- Controladores de vuelo alternativos: si te interesa migrar a stack profesional más adelante, Betaflight y PX4 son los referentes en F4/F7/H7. ESP-Drone se queda en la franja “hobby + educativo”.
Para enjambres, el modo ESP-NOW (protocolo P2P propio de Espressif) permite que múltiples drones se sincronicen sin pasar por router Wi-Fi —es un caso de uso interesante que el proyecto soporta a través del extension ESP-BOX3 Joystick Control—.
Discusión técnica honesta
Fortalezas verificables
- Costo bajo: un kit funcional brushed/coreless DIY (motores 8520, batería 1S, frame impreso 3D, ESP32-S2 dev) sale por menos de 40 USD en Aliexpress. La versión brushless con ESCs sube a 60-90 USD. El ESP32-S2-WROVER en sí mismo cuesta 3-4 USD al chip.
- Hardware referencia abierto: Espressif publica los esquemáticos completos del PCB en PDF oficial. Cualquiera puede fabricar la placa.
- Comunidad heredada: 408 forks y compatibilidad con el ecosistema Crazyflie (cfclient, paquetes ROS, papers académicos).
- Wi-Fi directo desde el chip: a diferencia del Crazyflie que requiere su propio dongle USB para comunicación, ESP-Drone usa el Wi-Fi nativo del ESP32 — cero hardware adicional para control.
- Documentación de Espressif disponible en inglés y chino, con getting started oficial.
Limitaciones y riesgos
- Bus factor bajo: solo 9 contribuidores en 5+ años. Si Espressif decide archivar, el proyecto queda dependiente de la comunidad —y la comunidad de hobby drones tiende a migrar rápido a la siguiente plataforma de moda.
- Sin releases tagueadas: cero versionado formal. Compilar siempre desde commit específico es responsabilidad del usuario.
- Soporte oficial limitado desde dic 2022: aceptan PRs pero no garantizan respuesta a issues. El último commit es de julio 2025 (un fix del MPU6050) — aceptable pero lejos del ritmo de proyectos activos.
- Wi-Fi como medio de control: rango limitado a unos 30-50 metros en interiores con la antena PCB del ESP32-S2 a baja potencia. Para outdoor o uso profesional no compite con radios dedicadas: ELRS y TBS Crossfire alcanzan kilómetros, FrSky ACCESS ronda 1.5 km. Hay órdenes de magnitud de diferencia.
- Licencia GPL-3.0 viral: si forkeás esto para un producto comercial, debés liberar el código modificado. Para empresas que querían crear un producto cerrado, esto es bloqueante. Para educación y research, no es problema.
- Cambios al MPU6050: el último commit corrige un bug de inicialización del IMU — señal de que el sensor primario aún tenía issues no triviales.
- Dependencias congeladas: el firmware está pinneado a Crazyflie tag 2021.01. Mejoras posteriores en el upstream Crazyflie (sensores nuevos, estabilizadores mejorados, EKF avanzado) no llegan automáticamente. Hay que portarlas a mano.
Red flags evaluados (sin alertas)
- ✅ Sin discrepancia marketing/código: la página oficial no exagera capacidades.
- ✅ Sin promesas no documentadas.
- ✅ Licencia clara y consistente.
- ✅ No requiere API keys ni servicios cloud externos para funcionar.
Conclusión y casos de uso
Para quién sí es recomendable
- Educación STEAM: profesores de robótica que quieren un dron real con presupuesto austero. El curriculum de Bitcraze (el padre Crazyflie) es transferible casi 1:1.
- Estudiantes y makers: para aprender control PID, fusión de sensores, comunicación inalámbrica, todo en un solo proyecto físico.
- Investigadores en swarms low-cost: el ESP-NOW + Wi-Fi mesh permite experimentos con decenas de drones a costo razonable.
- Empresas que respetan GPL3: integradores que ya operan bajo modelos open source y quieren una base de firmware lista.
Para quién no es recomendable
- Aplicaciones comerciales que requieran código cerrado: la GPL-3.0 lo prohíbe. Si forkeas esto para producto cerrado, debes liberar el código modificado. Considera PX4 (BSD-3-Clause, friendly al uso comercial) o explorar Ardupilot (GPL pero con prácticas comerciales establecidas).
- Vuelo outdoor / largo alcance: el Wi-Fi del ESP32 no es comparable a radios de hobby dedicadas. PX4 + Pixhawk es la respuesta.
- Industria certificada (entrega, inspección): ESP-Drone no tiene certificación FAA/EASA ni redundancia de sensores. No usar en producción.
Alternativas
| Alternativa | Cuándo elegirla |
|---|---|
| Crazyflie 2.x (Bitcraze) | Si no te importa pagar 230-340 USD por hardware mejor armado y soporte oficial activo |
| Betaflight | Hobby drones FPV con radios RC, comunidad masiva, microcontroladores F7/H7 |
| PX4 | Aplicaciones comerciales o investigación seria, licencia BSD |
| iNAV | Drones con misiones GPS y aviones de ala fija; también long-range FPV |
| Ardupilot | Plataforma madura para múltiples vehículos (multirrotor, fixed-wing, rover, sub) |
ESP-Drone se queda firmemente en su nicho: el dron Wi-Fi open source más barato del mercado, diseñado por los mismos creadores del chip que lo hace volar.
Fuentes
- Espressif Systems · github.com/espressif/esp-drone · README oficial
- Espressif Systems · Documentación oficial ESP-Drone
- Espressif Systems · Esquemático PDF placa principal
- Bitcraze · Crazyflie open source project (proyecto padre)
- Bitcraze · crazyflie-firmware tag 2021.01
- Espressif Apps · ESP-Drone-iOS · ESP-Drone-Android
- Lee · crazyflie-clients-python fork compatible con ESP-Drone
- WhyEngineer · esp32-lin / dsp_lib
Datos de GitHub API consultados el 27 de abril de 2026.
0 Comentarios