Configuração do Blackbox no Betaflight: grave um log que dê para diagnosticar
O blackbox grava o giroscópio, os sticks e o setpoint, termos PID, motores, RPM, tensão e corrente. Mas um log com as configurações de fábrica muitas vezes mostra muito pouco. Exemplos reais dos logs que analisamos: um drone de 3.5 polegadas no Betaflight 4.5.2 gravando a 1 kHz enquanto os motores chegam a 644 Hz; um log do Betaflight 2026.6 a 247 Hz sem giroscópio bruto nem RPM; um drone de 7 polegadas no 4.6 gravando a 2 kHz em um cartão SD com 182 lacunas; um log do INAV 7.1 a 58 Hz que não diz nada sobre vibração.
O que cada verificação precisa
Os limites vêm direto do código do analisador; abaixo deles, a verificação não mostra nada ou indica que há poucos dados.
| Verificação | Campos do log | Taxa de gravação | Como voar |
|---|---|---|---|
| Vibração por motor: qual motor ou hélice está vibrando | giroscópio sem filtro + eRPM | ~250 Hz ou mais; funciona mesmo acima de Nyquist | meio minuto de voo estável com o acelerador variando |
| Ruído e filtros, ressonâncias do frame | giroscópio sem filtro e filtrado | 500 Hz ou mais; frequência exata de ressonância em 1/1 (ou 2 kHz ou mais para ressonâncias abaixo de 500 Hz) | hover e uma subida lenta do acelerador até 100% |
| Ruído dos motores e qual termo PID o carrega | motor, axisP, axisD, axisF | 500 Hz ou mais | qualquer voo |
| Resposta ao degrau e latência | setpoint + giroscópio | 200 Hz ou mais | Acro; pelo menos 10 janelas úteis de um segundo com o stick a 20 deg/s ou mais; 50 para um resultado “crítico” |
| Propwash | setpoint, acelerador | 200 Hz ou mais | pelo menos 3 cortes limpos, 5 para um resultado confiável |
| Bounce-back depois dos flips | setpoint, axisP/I/D/F | 200 Hz ou mais | pelo menos 6 paradas bruscas do stick por eixo |
| Afundamento no punch-out (anti-gravity) | setpoint, acelerador, axisI | 100 Hz ou mais | pelo menos 6 punch-outs com os outros sticks centralizados |
| Queda de tensão e resistência da bateria | vbat; também sensor de corrente para medir resistência | qualquer | para resistência, pelo menos 5 janelas de um segundo com variação de corrente de 8 A ou mais |
| Análise de crash | acelerômetro, giroscópio, RSSI/failsafe, eRPM, vbat | qualquer | — |
Com menos de 10 segundos no ar, todos os achados de tuning caem para “info” e perdem os comandos CLI, e bounce-back e punch-outs não são medidos. Se mais da metade do voo foi em Angle ou Horizon, as verificações de resposta ao degrau e bounce-back são ignoradas: nesses modos, o stick comanda um ângulo, não uma taxa de rotação.
Taxa de gravação e aliasing
Por que 1 kHz engana em drones pequenos
Um log gravado a N Hz só mostra vibração até N/2, a frequência de Nyquist. O que é mais rápido não desaparece: reflete de volta para baixo desse limite. Um motor a 644 Hz em um log de 1000 Hz aparece a 1000 − 644 = 356 Hz. Isso cria um pico bem definido no espectro onde não há nada acontecendo: um alvo fácil para um notch ou filtro mal ajustado.
Três logs de um VX3.5 no Betaflight 4.5.2 (loop PID de 4 kHz, 1/4, portanto 1 kHz) mostraram os motores chegando a 583, 605 e 644 Hz, acima de 500 Hz em todos os casos. A figura mostra o mesmo efeito em outro drone: um log de 2 kHz mantendo um a cada quatro frames, exatamente o que blackbox_sample_rate faz, descartando frames sem filtragem prévia.

O bbdoctor mede a vibração de cada motor pela fase de rotação (eRPM), então sabe onde a cópia refletida aparece e essa verificação ainda funciona a 1 kHz; não dá para recuperar o espectro de ruído e as ressonâncias. Quando o RPM máximo em um log do Betaflight passa de 95% da frequência de Nyquist, o relatório acrescenta “A taxa de gravação está abaixo da frequência do motor” e mostra o divisor correto como comando.
Como escolher blackbox_sample_rate
A partir do 4.3, a taxa é um divisor do loop PID: 1/1, 1/2, 1/4, 1/8 ou 1/16, com 1/4 como padrão. O bbdoctor escolhe o maior divisor que ainda mantém pelo menos 2 kHz:
| Loop PID | Padrão (1/4) | Definir | Resultado |
|---|---|---|---|
| 8 kHz | 2 kHz | 1/4 | 2 kHz |
| 4 kHz | 1 kHz | 1/2 | 2 kHz |
| 3.2 kHz (BMI270) | 800 Hz | 1/1 | 3.2 kHz |
A taxa do loop fica na aba Configuration. Nem todo build precisa de 2 kHz: o bbdoctor só recomenda isso quando os motores passam da taxa de gravação. Um drone 6S de 7 polegadas do nosso conjunto não passou de 315 Hz, então 1 kHz teria sido suficiente. Um drone 4S de 3 a 3.5 polegadas geralmente passa disso a 1 kHz, e não são só eles: em quatro logs de 1 kHz de um drone 6S no 4.5.1, os motores chegaram a 529–554 Hz. Em um BMI270, 1/1 consome a flash mais rápido; se o espaço for limitado, 1/2 (1.6 kHz) ainda cobre motores até cerca de 760 Hz. 1/8 e 1/16 não servem para análise (500 e 250 Hz em um loop de 4 kHz), e a verificação de configuração sinaliza esses divisores.
Espaço na flash
Tamanho dos arquivos no nosso conjunto: a 1 kHz com todos os campos, cerca de 34 KB/s sem campos de debug e 41–43 KB/s com um modo de debug ativado; a 2 kHz, 58–70 KB/s. Uma flash de 8 MB dura cerca de 3 a 4 minutos a 1 kHz e 2 minutos a 2 kHz. Aquele VX3.5 (debug_mode = GYRO_SCALED) encheu sua flash de 8 MB até o último byte em 195 segundos a 1 kHz e parou no meio do voo. O bbdoctor detecta isso (fim truncado ou arquivo com exatamente 2, 4, 8 ou 16 MB) e avisa, junto com a recomendação de taxa, que o tempo de gravação cairá pela metade.
Então apague a flash antes dos testes (Erase flash na aba Blackbox ou flash_erase na CLI), voe packs de teste de 1 a 2 minutos e remova os campos de que não precisa. Um cartão SD tem espaço, mas um cartão lento perde frames: o drone de 7 polegadas no 4.6 gravando a 2 kHz no SD teve 182 lacunas. Use um cartão bom e recém-formatado; se as lacunas continuarem, reduza a taxa um nível.
Configurações do Betaflight por versão
4.5 e 2025.12+
Para um loop PID de 4 kHz (use 1/4 em 8 kHz e 1/1 em 3.2 kHz):
set blackbox_mode = NORMAL
set blackbox_sample_rate = 1/2
set blackbox_disable_gyrounfilt = OFF
set blackbox_disable_rpm = OFF
set blackbox_disable_setpoint = OFF
set blackbox_disable_pids = OFF
set blackbox_disable_motors = OFF
set debug_mode = NONE
save
blackbox_devicefoi omitido para que colar os comandos não atrapalhe a gravação no SD. Confira por conta própria:SPIFLASHpara a flash onboard,SDCARDpara um slot microSD,NONEnão grava nada.blackbox_mode = NORMALgrava da armação até desarmar; com um modo BLACKBOX atribuído na aba Modes, grava somente enquanto a chave estiver ligada.- O giroscópio bruto e o RPM têm campos próprios nesta versão, então não é preciso modo de debug; com
debug_mode = NONE, nenhum campo de debug é gravado. - O campo RPM só existe com DShot bidirecional ativado (veja abaixo).
Um log do Betaflight 2026.6.1 foi gravado em 1/16 (247 Hz em um loop de 4 kHz) com o giroscópio bruto e o RPM desativados, embora o DShot bidirecional estivesse funcionando. O relatório forneceu os dois comandos para ativá-los de novo. Em um log do 4.5.1, o setpoint estava desativado: o bbdoctor o reconstrói a partir dos sticks e rates, com uma estimativa de PID menos precisa, e informa isso.
4.3–4.4
set blackbox_sample_rate = 1/2
set debug_mode = GYRO_SCALED
save
Escolha o divisor na tabela acima. Ainda não há campos para giroscópio sem filtro ou RPM. O giroscópio passa pelo debug, e só um modo de debug funciona por vez, então DSHOT_RPM_TELEMETRY fica de fora (o bbdoctor também não lê RPM do debug). Mesmo com o DShot bidirecional funcionando, ele recomenda o 4.5, porque sem RPM não consegue identificar o motor desbalanceado. As configurações blackbox_disable_… existem desde o 4.3 (rpm e gyrounfilt a partir do 4.5): confira se o setpoint está ativado.
4.0–4.2
set blackbox_p_ratio = 64
set debug_mode = GYRO_SCALED
save
Essas versões usam blackbox_p_ratio. A taxa é aproximadamente p_ratio × 31.25 Hz: 32 resulta em cerca de 1 kHz, 64 em cerca de 2 kHz, limitada à taxa do loop PID. Um log do 4.2.11 do nosso conjunto foi gravado a apenas 534 Hz e ainda teve 36 lacunas.
Campos que você pode desativar e os que deve manter
blackbox_disable_gps, blackbox_disable_mag e blackbox_disable_alt (barômetro) podem ser ativados com segurança, a menos que você analise navegação. Mantenha:
- gyro e motors: um log sem o giroscópio ou os comandos dos motores não é aceito;
- setpoint e pids: necessários para medir a resposta ao degrau com precisão e separar o bounce-back em P, I, D e FF;
- rc: mostra o atraso do suavizador de stick (rcCommand → setpoint) e reconstrói o setpoint se esse campo estiver desativado;
- acc: impactos na análise de crash;
- bat: queda de tensão, resistência da bateria e perda de potência como causa de crash;
- rssi, se o RSSI estiver configurado: perda de link antes de um crash.
RPM no log
O RPM vem do DShot bidirecional: set dshot_bidir = ON, save, com protocolo DShot e ESCs usando Bluejay, AM32 ou BLHeli_32. Depois, tire as hélices, gire os motores com os sliders na aba Motors e confira se o RPM aparece com erros próximos de zero. Confira também motor_poles: a frequência do motor é calculada a partir do eRPM usando o número de polos. A maioria dos motores de 5 polegadas tem 14 polos; alguns pequenos têm 12. Se o valor estiver errado, todas as frequências dos motores no log estarão erradas. Veja mais no guia do filtro RPM e do DShot bidirecional.
INAV
set blackbox_rate_num = 1
set blackbox_rate_denom = 2
blackbox GYRO_RAW
blackbox MOTORS
save
No INAV, a taxa de gravação é a fração blackbox_rate_num/blackbox_rate_denom dos ciclos do loop. O INAV 8 e versões posteriores usam por padrão um loop de 2 kHz (looptime = 500), em que 1/2 resulta em 1 kHz; o INAV 7 e anteriores usam por padrão 1 kHz (looptime = 1000), em que 1/2 resulta em 500 Hz. As verificações de vibração e filtros precisam de 500 Hz ou mais. Três logs do INAV 7.1.2 do nosso conjunto, de um drone de 7 polegadas e um de 5, foram gravados em 1/32, ou 58–60 Hz: só mostram o balanceamento dos motores e a bateria. Um log do INAV 8.0 em 1/2 chegou a 995 Hz, com ruído e filtros bem visíveis.
blackbox GYRO_RAWadiciona o giroscópio bruto;blackbox MOTORS, os comandos dos motores. Dois logs do INAV 7 com MOTORS desativado foram rejeitados.- O INAV não grava RPM por motor, então não é possível analisar a vibração individual de cada motor.
- Um log do INAV 8.0 voado 78% do tempo em Angle/Horizon não recebeu resultado de PID.
- Um log do INAV 6.1 tinha 27% de frames corrompidos. O bbdoctor os descarta e marca os resultados de PID e ruído como não confiáveis; faça outro voo para obter um log assim.
Veja os detalhes no guia do blackbox no INAV.
ArduPilot e PX4 em resumo
ArduPilot. Sem os bits de alta taxa em LOG_BITMASK (nenhum vem ativado por padrão), o ArduCopter grava o giroscópio a 25 Hz, como ocorreu em todos os dez logs do ArduCopter do nosso conjunto, das versões 4.1 a 4.8-dev. Para análise, defina o bit 0 (ATTITUDE_FAST) e o bit 19 (IMU_RAW) em LOG_BITMASK, além de INS_RAW_LOG_OPT = 9 no 4.5 ou posterior para obter o giroscópio antes e depois da filtragem. O RPM vem da telemetria do ESC ou do DShot bidirecional (SERVO_BLH_BDMASK). Use o arquivo .bin do cartão SD (APM/LOGS), não um .tlog. Para os PIDs do ArduCopter, o AUTOTUNE integrado é mais confiável; use o log para analisar vibração e filtros. Veja o guia de análise de logs do ArduPilot.
PX4. Adicione os bits 4 (High rate) e 8 (Raw FIFO gyro) a SDLOG_PROFILE: partindo do padrão 1, o valor fica 273. Ou execute param set SDLOG_PROFILE 273 no MAVLink Console do QGroundControl e reinicie: o perfil é lido na inicialização. O arquivo .ulg fica em Analyze Tools → Log Download. Veja o guia de ULog do PX4.
O voo de teste
No freestyle, esses eventos acontecem por acaso; um pack de teste de 1.5 a 2 minutos permite fazer de propósito 6 a 8 de cada:
- Antes de decolar. Hélices novas, pack carregado, flash apagada e chave BLACKBOX ligada se você usar uma.
- Modo Acro. Angle e Horizon impedem a análise de resposta ao degrau e bounce-back.
- 30 segundos de hover e voo nivelado e suave; depois, se houver espaço, suba lentamente o acelerador do hover a 100% ao longo de 5 segundos para mapear o ruído em função do acelerador.
- 6 a 8 flips ou rolls por eixo, além de giros de yaw. Solte o stick de volta ao centro em menos de 0.2 s e mantenha-o ali por meio segundo. Os movimentos contam a partir de 150 deg/s em roll e pitch e 120 deg/s em yaw; um retorno lento ao centro é descartado.
- 6 a 8 punch-outs a partir do hover (cerca de 30% de acelerador, sempre abaixo de 70%): percorra mais de um quarto do curso do acelerador em 0.2 s. Não mexa em roll e pitch; acima de 80 deg/s de setpoint, o punch-out não conta.
- 6 a 8 cortes retos: suba, corte o acelerador até zero e mantenha os sticks centralizados por cerca de um segundo. O corte conta se o acelerador estava acima de 35% e caiu mais de 25% em 0.15 s. Não faça flips logo em seguida: em um log de 2 kHz, 12 de 15 cortes foram seguidos imediatamente por um flip ou roll, deixando só 3 válidos para analisar propwash.
- Pouso. Pouse suavemente, sem cortar o acelerador logo acima do chão: um corte que termina em impacto é excluído da análise de propwash.
Um drone grande não precisa de flips; inclinações curtas e bruscas dos sticks a uma altura segura resolvem. Só o tempo de voo não garante nada: cinco minutos de voo normal em um drone de 7 polegadas produziram 5 cortes (um limpo), 1 punch-out e uma parada brusca de roll.

Como baixar o log
No Betaflight e no INAV, use Save flash to file na aba Blackbox ou o modo Mass Storage para que a controladora apareça como uma unidade. Com cartão SD, copie o arquivo. Arquivos do INAV geralmente terminam em .TXT; o ArduPilot usa .bin e o PX4, .ulg.
Um arquivo pode conter vários voos, um por armação; nosso conjunto inclui um arquivo do Betaflight 2026.6 com 66. Por padrão, o bbdoctor escolhe o voo mais longo (o número 58 nesse arquivo), e o relatório permite selecionar qualquer outro.
Erros comuns
| Sintoma | Causa | Solução |
|---|---|---|
| Log vazio ou sem nenhum voo | chave BLACKBOX desligada, blackbox_device = NONE, flash já cheia | confira Modes e Blackbox e apague a flash |
| O log para no meio do voo | flash cheia: o arquivo tem exatamente 8 ou 16 MB | apague antes de voar e use packs de 1 a 2 minutos |
| “Lacunas na gravação” | cartão SD lento ou taxa alta demais | use um cartão bom; se não resolver, reduza um nível do divisor |
| “O setpoint não foi gravado” | blackbox_disable_setpoint = ON | set blackbox_disable_setpoint = OFF |
| Sem resultado de PID | mais da metade do voo em Angle/Horizon | faça um pack de teste em Acro |
| Log do INAV a 60 Hz | blackbox_rate_denom alto | use 1/2 no voo de teste |
| INAV: “sem comandos dos motores” | campo MOTORS desativado | blackbox MOTORS |
| Sem RPM | DShot bidirecional desativado, Betaflight anterior ao 4.5 ou blackbox_disable_rpm = ON | ative o DShot bidirecional, atualize e reative o campo |
| Picos no espectro que nenhuma mudança de filtro “corrige” | motores acima de ~475 Hz em um log de 1 kHz: frequências refletidas | use um divisor para ~2 kHz (1/2 em um loop de 4 kHz) e grave um novo log |
Verifique o log automaticamente
Envie o arquivo para o bbdoctor; é grátis e não precisa de conta. Primeiro, ele verifica o próprio log: tempo de voo, lacunas e frames perdidos, fim truncado, giroscópio bruto, RPM e setpoint, taxa de gravação em relação à frequência máxima dos motores e tempo em modo de autoestabilização. O relatório identifica o que estiver faltando e mostra comandos para sua versão do firmware. Veja o relatório de exemplo.
Você também pode conferir as configurações antes de voar: cole seu diff all na verificação de configuração. Ela sinaliza o blackbox desativado, divisores 1/8 ou 1/16, campos desativados, falta de GYRO_SCALED no 4.0–4.4 e taxa baixa ou falta de GYRO_RAW no INAV. Para analisar o log pronto, veja como ler um log do blackbox.
Perguntas frequentes
Que taxa de gravação do blackbox devo usar?
Cerca de 2 kHz: blackbox_sample_rate = 1/4 em um loop PID de 8 kHz, 1/2 em 4 kHz e 1/1 em 3.2 kHz (giroscópio BMI270). Drones grandes cujos motores ficam abaixo de cerca de 450 Hz funcionam bem a 1 kHz, mas em um drone 4S de 3 a 3.5 polegadas e em muitos builds 6S um log de 1 kHz já mostra picos falsos no espectro.
Por que meu log do blackbox está vazio?
Normalmente, o modo BLACKBOX está em uma chave que ficou desligada, a flash já estava cheia ou blackbox_device está em NONE. Confira as abas Modes e Blackbox, apague a flash antes do voo e voe por pelo menos 30 a 60 segundos.
Preciso de debug_mode no Betaflight 4.5 ou 2025.12?
Não. A partir do 4.5, o giroscópio sem filtro e o RPM dos motores têm campos próprios no log; com debug_mode = NONE, os campos de debug não são gravados. GYRO_SCALED só é necessário no 4.0 a 4.4.
Quanto tempo dura a flash onboard a 2 kHz?
Nos nossos logs, 1 kHz com todos os campos ocupa 34 KB/s sem campos de debug e 41–43 KB/s com eles; 2 kHz ocupa 58–70 KB/s. Uma flash de 8 MB enche em cerca de 3 a 4 minutos a 1 kHz e cerca de 2 minutos a 2 kHz; 16 MB dura o dobro.
Atualizado: