Cómo leer un registro Blackbox: de las líneas onduladas al diagnóstico
Abres un registro en Blackbox Explorer y aparecen treinta trazas. Explorer muestra todo lo que grabó el controlador de vuelo; las conclusiones las sacas tú. A continuación encontrarás una lectura manual en siete pasos y, después, un registro real con cada hallazgo de bbdoctor, sus cifras y cómo comprobarlo a simple vista, además de cuándo la automatización debe decir «no lo sé».
Herramientas para leer un registro
| Herramienta | Qué hace por ti | Qué queda de tu parte |
|---|---|---|
| Blackbox Viewer (Blackbox Explorer) | Línea de tiempo de todos los campos, sincronización de vídeo, analizador de espectro (PSD, mapas de calor de gas y RPM, comparación de espectros mediante importación CSV), exportación CSV. Desde 2026.6 es una pestaña de Betaflight App; blackbox.betaflight.com, la versión independiente, está congelada. | Encontrar los momentos, juzgar qué es normal y elegir el parámetro. |
| INAV Blackbox Explorer | Lo mismo para registros de INAV. | Lo mismo; INAV no registra las RPM de cada motor. |
| PIDtoolbox | Espectrogramas del gas, respuesta a escalón, comparación de varios registros. | La interpretación y el parámetro. |
| PID-Analyzer (Plasmatree) | Script de Python: respuesta a escalón mediante deconvolución, ruido en función del gas. | La interpretación; no indica si el sobreimpulso viene de FF o de P/D. |
| blackbox_decode | Convierte el registro a CSV. | Todo lo demás, con tus propios scripts. |
| Mission Planner, UAV Log Viewer (ArduPilot) | Gráficas de mensajes .bin: RATE, PIDR/PIDP, VIBE, BAT, RCOU; FFT en la herramienta web Filter Review. | Las conclusiones y los límites de VIBE. |
| PX4 Flight Review | Gráficas en línea de archivos .ulg: seguimiento de velocidad angular, salidas de motor, espectrogramas. | Las conclusiones y los parámetros. |
| bbdoctor | Hallazgos del tipo «qué falla → qué hacer», con cifras, intervalos del 90 % y comandos para Betaflight, EmuFlight, INAV, Rotorflight, ArduPilot y PX4. | No ofrece vista fotograma a fotograma ni vídeo (para eso está Explorer). Decidir si aplicas las recomendaciones. |
No compiten entre sí: Explorer sirve para estudiar un segundo del vuelo; la automatización te dice qué segundo mirar y qué cambiar.
Cómo leer un registro a mano en 7 pasos
Los nombres de los campos son los que aparecen en el registro. El índice 0 corresponde a roll, 1 a pitch y 2 a yaw. En Explorer, View → Analyser (o la tecla A) abre el analizador de espectro; después haz clic en una traza de la leyenda.
- Línea de tiempo y modos. Un archivo puede contener varios vuelos, uno por cada armado. Comprueba flightModeFlags: la respuesta PID parece mucho peor en ANGLE y HORIZON que en ACRO. rcCommand[3] muestra estacionarios, cortes de gas y aceleraciones a fondo. No confíes en espectros que atraviesan interrupciones del registro.
- Giroscopio frente a consigna en los giros bruscos. Compara gyroADC[0] y setpoint[0]. Si el giroscopio pasa el objetivo, hay sobreimpulso. Si oscila después de soltar la palanca, hay poca amortiguación o rebote. Si se queda atrás entre 20 y 30 ms, la respuesta es lenta. Añade axisP[0], axisD[0] y axisF[0] para ver qué término impulsa el cuadricóptero.
- Motores. Mira motor[0..3]. Llegar al 100 % al acelerar a fondo o brevemente durante un giro rápido está bien; quedarse ahí durante maniobras a medio gas significa que no hay margen. Un motor que permanece al ralentí después de cortar gas suele causar turbulencia de hélice. Si una pareja se mantiene por encima de la otra durante todo el estacionario, puede ser el centro de gravedad.
- Espectro antes y después de los filtros. Compara gyroUnfilt con gyroADC. Por encima de unos 80 Hz suele ser ruido, no movimiento de vuelo. Lo que sobrevive a los filtros llega a los PID y calienta los motores.
- Frecuencia según el gas. Una línea diagonal que se desplaza a la derecha al aumentar el gas corresponde a motores y hélices. Una banda vertical que aparece con cualquier aceleración corresponde al chasis, la pila electrónica o una antena (fig. 1).
- Término I durante el estacionario. axisI[0] y axisI[1] deberían fluctuar alrededor de cero. Si uno mantiene un valor durante todo el vuelo, está compensando un desequilibrio: centro de gravedad, motor inclinado o desgastado.
- Voltaje e intensidad. Consulta vbatLatest y amperageLatest: caída de voltaje por celda durante los picos de corriente y voltaje al final. La variación de voltaje dividida por la variación de corriente da una estimación aproximada de la resistencia interna.

Los pasos 4 y 5 requieren una frecuencia de registro suficientemente alta: todo lo que supere la mitad de la frecuencia de registro se pliega y aparece como picos falsos. Configuración: guía de configuración de Blackbox.
Un registro real, de principio a fin
El registro público que hay detrás del informe de ejemplo: Betaflight 4.5.2, SpeedyBee F405 Mini, 4S y un modelo de 3,5 pulgadas, a juzgar por el nombre del aparato VX3.5. 110 s de registro, 107 en vuelo, todo en ACRO. Giroscopio a 8 kHz, PID a 4 kHz y registro a 1 kHz, con giroscopio bruto y eRPM. De los 20 puntos del informe, estos son los principales y el origen de cada cifra.
Motores traseros con un 50 % más de carga: el centro de gravedad
Consigna media: motores traseros M1 y M3 al 28,7 %; delanteros al 19,2 %. Más del 12 % es una señal de alerta; más del 30 %, crítico. Confirmación: la mediana del término I de pitch es 45, lejos de cero, así que el controlador añade empuje trasero durante todo el vuelo. Lo habitual es que la batería o la cámara estén demasiado atrás; también puede deberse a mucho vuelo rápido hacia delante, y en un estacionario tranquilo apenas habría diferencia. No es un problema de PID: mueve la batería hasta que el cuadricóptero quede nivelado al sostenerlo con los dedos por debajo del centro del chasis.
Roll: 36 % de sobreimpulso, causado por feedforward
Respuesta a escalón de roll: 36 % de sobreimpulso (intervalo del 90 %: 29–44 %), calculado a partir de 165 ventanas de un segundo utilizables (solapadas) entre 372 con movimiento de palanca; la mitad de la velocidad angular solicitada se alcanza en 8 ms. El límite inferior supera el 15 %, así que se señala el hallazgo. Pero la recomendación no es «baja P» ni «sube D». En movimientos rápidos de palanca, feedforward hace el 60 % del trabajo (FF frente a P), y el giroscopio se adelanta en promedio 3 ms a la consigna: FF está arrastrando el cuadricóptero. Así que solo se cambia FF: f_roll 120 → 102, un 15 % menos que el valor del encabezado; P y D quedan igual. Si solo queda sobreimpulso en giros rápidos, el siguiente ajuste sería feedforward_boost 15 → 8. En pitch ocurre lo mismo: 28 % (23–37 %), FF 56 %, f_pitch 125 → 106.
set f_roll = 102 set f_pitch = 106 set simplified_pids_mode = OFF save
Por qué se cambia simplified_pids_mode: los PID de este registro no coinciden con los controles deslizantes y Configurator los sobrescribiría al guardar de nuevo.

A simple vista no verás un 36 %: aquí el pico solo supera el objetivo en 22 deg/s (9 %). La respuesta a escalón es la reacción a un escalón instantáneo ideal, obtenida por deconvolución a partir de 165 ventanas; una entrada real de palanca es una rampa de unos 100 ms. La rampa muestra lo mismo de otra manera: el giroscopio se adelanta a la consigna y los picos de FF casi quintuplican P. Más información en ajuste de PID a partir de Blackbox.
Ruido bruto de 4,1 deg/s: mecánica, no filtros
Ruido bruto del giroscopio por encima de 80 Hz: roll 4,1, pitch 2,4 y yaw 2,5 deg/s; apenas supera el umbral de alerta de 4 deg/s. Con filtros: 0,53 deg/s con un retardo de unos 1,4 ms; el informe considera que los filtros están bien. Déjalos como están y revisa las hélices, los rodamientos y el montaje de la pila. La vibración de 1× por motor es uniforme (M1 1,1; M2 0,5; M3 1,8; M4 1,9 deg/s), y la diferencia de RPM con la misma consigna es de un máximo del 1,9 %. Si buscas un motor defectuoso cuando la diferencia es grande, consulta la guía de vibración de motores.
Motores hasta 610 Hz, registro a 1 kHz
eRPM muestra motores hasta 610 Hz, pero un registro a 1000 Hz solo llega a 500 Hz; por encima, las frecuencias se pliegan, así que 610 Hz aparece como 390 Hz. El análisis por motor lo corrige (usa la fase de rotación de eRPM), pero el espectro y las frecuencias de resonancia quedan ambiguos. Solución:
set blackbox_sample_rate = 1/2 save
Variación de FF causada por la radio: 2,1 % del rango del motor
Mientras mueves las palancas, FF por encima de 40 Hz (un impulso en cada paso de radio) representa el 2,1 % del rango del motor en roll y el 1,7 % en pitch, con 34 y 28 impulsos por segundo por encima del 5 %. El FF útil por debajo de 12 Hz es del 1,5 y el 1,2 %. Con las palancas quietas baja al 0,40 %, así que el origen son los pasos de las palancas. Enlace a 494 Hz, suavizado de palancas a 185 Hz. FF genera el 89 % del ruido de salida PID de alta frecuencia y D, el 10 %; no bajes D ni los filtros del término D por esto, porque solo añadirías retardo. Primero reduce FF y suavízalo en el siguiente vuelo:
set feedforward_averaging = 2_POINT set feedforward_smooth_factor = 65 save
El aumento de D apenas entra en acción
Configuración: d_min_roll = 30, d_roll = 45 y aumento de hasta ×1.50. bbdoctor mide el multiplicador real a partir del término D registrado (pendiente de axisD frente a la derivada del giroscopio entre 8 y 40 Hz, en bloques de 0,25 s, con TPA eliminado). En las maniobras más bruscas, D solo llega a ×1.06 en roll y ×1.04 en pitch. Vuelas con d_min, así que cambia la amortiguación mediante el D base (la columna Derivative), no D Max. En 2025.12 los nombres siguen la interfaz: d_roll base y d_max_roll como límite; consulta la guía de ajuste de PID.
Turbulencia de hélice de 1,1 deg/s: dentro de lo normal
Un corte es una caída de más del 25 % del recorrido del gas en 0,15 s, partiendo de más del 35 %. Hay 46; dos pasan directamente a un giro y bbdoctor los descarta porque el movimiento de palanca produce el mismo rango de 15–80 Hz. En los 44 cortes limpios, la diferencia entre giroscopio y consigna entre 15 y 80 Hz, de 0,08 a 0,6 s después del corte, es de 1,1 deg/s RMS, principalmente a unos 20 Hz; hasta 4 es normal. No hay nada que corregir; si sigue molestándote, consulta la guía de turbulencia de hélice.
Batería: 3,23 V por celda a 72 A
Empezó a 3,84 V por celda, sin estar completamente cargada. El mínimo sostenido (más de 0,5 s) es 3,23 V, el pico de corriente 72 A y al final quedan 3,66 V; consumió unos 248 mAh. La resistencia interna es de aproximadamente 7 mΩ por celda, incluidos los cables, según 182 cambios bruscos de corriente. La batería está al límite: advertencia.
El resto
- Retardo entre consigna y rotación: roll 4,1 ms, yaw 4,6 ms (normal con FF: 4–12 ms), más 1,3 ms de radio a consigna; pitch: no hay un valor fiable.
- 34 aceleraciones a fondo: en 0,4 s el cuadricóptero se inclina 2,5° en pitch y 0,5° en roll; lo normal es menos de 3°.
- Muy pocas paradas bruscas (roll 2, pitch 1; hacen falta 6): no se pudo comprobar el rebote.
Cómo comprobar cada hallazgo en Explorer
| Hallazgo | Qué graficar | Qué deberías ver |
|---|---|---|
| Centro de gravedad | motor[0..3], axisI[1] | En estacionario, M1 y M3 (traseros en la distribución de Betaflight) por encima de M2 y M4; axisI[1] cerca de 45. |
| Sobreimpulso por FF | setpoint[0], gyroADC[0], axisF[0], axisP[0] | El giroscopio supera la consigna mientras sigue subiendo; axisF alcanza varios múltiplos de axisP. Si FF es bajo y hay oscilación al parar, revisa P/D. |
| Ruido bruto | gyroUnfilt[0], gyroADC[0] en el analizador | El espectro bruto es claramente más alto entre 100 y 500 Hz; tras el filtrado, el nivel de fondo queda casi plano. |
| Motores más rápidos que el registro | eRPM[0..3] | Hz del motor = campo × 100 / (polos_del_motor / 2) / 60. Con 14 polos, 610 Hz se muestra como 2562. |
| Variación de FF | axisF[0], setpoint[0] | Un pico breve de axisF en cada paso de consigna; casi nada cuando la palanca está quieta. |
| Turbulencia de hélice | rcCommand[3], gyroADC[0..1] | Una oscilación de unos 20 Hz entre 0,1 y 0,6 s después del corte; con 1 deg/s apenas se aprecia. |
| Caída de voltaje | vbatLatest, amperageLatest | Un mínimo de unos 12,9 V en picos de hasta 72 A. |
Por qué algunos hallazgos indican «datos insuficientes»
Con pocos datos, un analizador debe guardar silencio para no recomendar disparates con demasiada seguridad. Estos son los mínimos de bbdoctor:
| Comprobación | Mínimo | Por debajo del mínimo |
|---|---|---|
| Registro completo | 10 s en vuelo | Todo se reduce a información; no hay comandos. |
| Respuesta a escalón por eje | 10 ventanas utilizables, al menos una cuarta parte del total | «Datos insuficientes para la respuesta a escalón» |
| Sobreimpulso crítico, comprobaciones PID detalladas | 50 ventanas por eje | Como máximo, advertencia; algunas comprobaciones no se muestran. |
| Rebote después de giros | 6 paradas bruscas por eje | No se comprueba. |
| Caídas durante aceleraciones a fondo | 6 aceleraciones sin movimiento de palanca | No se comprueba. |
| Turbulencia de hélice | 3 cortes limpios; 5 para emitir una advertencia | Sin estimación; solo información si hay 3–4. |
Ejemplo: un registro de Betaflight 4.2.5 (2 kHz, 4S, 215 s en vuelo) tiene 15 cortes, pero 12 pasan directamente a un giro o un roll. Al promediarlos, la «turbulencia de hélice» es de 18,4 deg/s: crítico (umbral de 10). Cada corte va de 1,4 a 58,6 deg/s; los valores altos corresponden a los giros. Los tres cortes limpios dan 1,8 deg/s, dentro de lo normal. Una herramienta que incluyera esas maniobras te recomendaría subir D y el ralentí en un cuadricóptero sin turbulencia de hélice.
Segunda protección: «sesgo del método ya restado». La deconvolución muestra un poco de sobreimpulso incluso con una respuesta perfecta, sobre todo si no se registra la consigna y hay que reconstruirla a partir de las palancas. bbdoctor repite el cálculo con una consigna desplazada por el mismo retardo y resta ese valor. En un registro de Betaflight 4.5.1 sin consigna (801 Hz, 6S), el sobreimpulso bruto de pitch es del 29 %; 9 puntos porcentuales corresponden al sesgo, por lo que se informa de un 20 %. En yaw, todo el 9,6 % bruto era sesgo: no había sobreimpulso.
Cómo saber si puedes confiar en las cifras
- Intervalos. La respuesta se calcula en cada ventana de un segundo y el sobreimpulso se lee en la curva mediana; el intervalo del 90 % se obtiene remuestreando las ventanas y recalculando la curva 200 veces (bootstrap). «36 % (29–44 %)» significa que incluso la estimación baja supera el 15 %.
- Veredictos. Si el límite inferior supera el 15 %, se informa de un hallazgo con comandos; si supera el 35 % con más de 50 ventanas, es crítico. Una estimación de hasta el 15 % con límite superior inferior al 25 % es normal. Un intervalo estrecho apenas por encima de lo normal es «limítrofe»: no hay que cambiar nada (roll en ese registro 4.5.1: 17 %, 15–24 %). Si el intervalo es amplio, el resultado es «incierto»: vuela 5 o 6 maniobras más.
- Comprobaciones cruzadas. Si los motores hacen ruido o el ruido pasa por D, no se recomienda subir D. Si FF hace al menos el 45 % del trabajo y P aporta poco, se reduce FF, no P.
- Sin sobreimpulso inventado. Un corte brusco de deconvolución (25 Hz, como en PID-Analyzer) añade alrededor de un 10 % de sobreimpulso falso (efecto Gibbs). bbdoctor usa en su lugar un núcleo gaussiano de 30 Hz; en registros sintéticos, un retardo puro da 0 % y un amortiguamiento ζ = 0,5 da 15 % frente a un 16 % real.
Flujo de trabajo: un cambio por vuelo
- Graba de 1 a 2 minutos en ACRO: estacionario, giros suaves, 5 o 6 cortes, de 6 a 8 giros y tantos rolls como puedas con retorno brusco al centro, y de 6 a 8 aceleraciones a fondo con las palancas quietas.
- Sube el registro al analizador Blackbox en línea. Empieza por los puntos críticos y la mecánica; ajustar los PID con un chasis desequilibrado y hélices astilladas no sirve.
- Haz un cambio por vuelo. En este caso: batería, después FF y luego suavizado de FF. Puedes cambiar blackbox_sample_rate junto con cualquier paso, porque no afecta al vuelo. Quita las hélices si configuras el equipo con la batería conectada.
- Usa las mismas hélices, una batería similar con un nivel de carga parecido y el mismo estilo de vuelo.
- Usa «Comparar análisis» debajo del historial. Si los intervalos del 90 % se solapan antes y después, significa «sin cambios»; se marcan los vuelos con estilos distintos (gas medio con una diferencia de al menos el 10 % del recorrido, o uno tres veces más largo).
Limitaciones
- INAV y EmuFlight no registran las RPM de cada motor, así que no permiten comprobar la vibración ni comparar las RPM por motor. Consulta análisis de Blackbox en INAV.
- Por defecto, ArduPilot y PX4 registran el giroscopio a baja frecuencia; el espectro, la respuesta a escalón y la turbulencia de hélice requieren unos 200 Hz. ArduPilot: activa el bit 19 (IMU_RAW) en LOG_BITMASK e INS_RAW_LOG_OPT = 9 (4.5+); PX4: activa los bits 4 (High rate) y 8 (Raw FIFO gyro) de SDLOG_PROFILE. Detalles: ArduPilot y PX4.
- Helicópteros Rotorflight: no se comprueba el equilibrio de los motores ni se emiten veredictos críticos; la respuesta PID solo es informativa.
- No se aceptan registros de ArduPlane, Rover, Sub ni de ala fija de PX4; los registros de simulador (SITL) omiten las comprobaciones de hardware y batería.
- Los umbrales se ajustaron con cuadricópteros FPV Betaflight; en drones más grandes tómalos como aproximaciones y compáralos con registros anteriores del mismo aparato.
- Las interrupciones por sí solas no son un problema (el análisis usa los tramos continuos). Si el registro está dañado (se pierde al menos el 10 % de los fotogramas o hay fotogramas corruptos con interrupciones frecuentes), los hallazgos de PID, ruido y resonancia pasan a ser informativos y dejan de incluir comandos.
A continuación, según el problema: ruido y filtros, turbulencia de hélice, PID a partir de la respuesta a escalón.
Preguntas frecuentes
¿Qué puedo usar en lugar de Blackbox Explorer?
El visor de registros de Betaflight ahora está en Betaflight App (app.betaflight.com), en la pestaña Blackbox Viewer, desde la versión 2026.6; Explorer como aplicación independiente ya no recibe nuevas funciones. INAV tiene su propio INAV Blackbox Explorer. Para ver hallazgos con cifras y comandos CLI, sube el registro a bbdoctor.
¿Qué archivos de registro lee bbdoctor?
Registros Blackbox de Betaflight, EmuFlight, INAV y Rotorflight (.bbl, .bfl, .txt), ArduPilot .bin y PX4 .ulg; los detecta por su contenido. No admite archivos de texto .log ni .tlog de ArduPilot, ni registros de ala fija de ArduPlane, Rover o PX4.
¿Puedo confiar en un análisis automático de Blackbox?
Cada estimación incluye un intervalo del 90 % y, si no hay una cantidad mínima de datos, no se emite ningún veredicto. Se resta el sesgo del método y se contrastan las recomendaciones. Aun así, es una orientación, no una sentencia: cambia un ajuste cada vez y comprueba el siguiente registro.
¿Se guarda mi registro?
Solo para poder repetir el análisis; se elimina automáticamente. La política de privacidad indica durante cuánto tiempo se conservan el registro y el informe. Puedes compartir el enlace del informe con quien quieras.
Actualizado: