Correção do driver STM32 DFU e doctor USB para controladoras de voo
Quando a controladora de voo não é detectada, a causa quase sempre é uma destas quatro: cabo só de carga, placa no modo errado, driver ausente ou incorreto (como o driver STM32 DFU no Windows) ou permissão que o sistema operacional ainda não concedeu. Esta página passa por cada uma, com as correções no Windows que os pilotos usam (ImpulseRC Driver Fixer e Zadig) e o que verificar no macOS, Linux e Android.
No Android, o app FlySpark inclui um doctor USB e DFU. Ele lista cada dispositivo USB que o telefone enxerga, diz o que é (controladora de voo, placa em modo bootloader DFU, adaptador USB-serial, rádio) e o que fazer em seguida. O Android não precisa de drivers; o doctor foca no que falha: cabos, OTG, permissão e modo da placa.
Esta ferramenta funciona no app FlySpark para Android. A demo roda no navegador.
- Grátis
- Demo sem hardware
Em resumo
O driver STM32 DFU permite que um computador flasheie a controladora em modo bootloader (ID USB 0483:DF11). No Windows corrige-se com Zadig ou ImpulseRC Driver Fixer. No Android não há driver; o doctor USB e DFU do FlySpark mostra o que o telefone detecta e os próximos passos.
Factos-chave
- Placa em modo DFU aparece como STM32 BOOTLOADER (0483:DF11); firmware em execução aparece como porta COM virtual (0483:5740).
- No Windows, flash DFU exige o driver WinUSB no STM32 BOOTLOADER, instalado com Zadig ou ImpulseRC Driver Fixer (documentação Betaflight).
- No Linux, acesso serial exige o grupo dialout e flash DFU exige regra udev para 0483:df11 e 2e3c:df11 (documentação Betaflight).
- O doctor USB e DFU do FlySpark reconhece 16 IDs vendor:product, incluindo bootloaders DFU STM32, AT32 e GD32, adaptadores CP210x, CH340, CH9102 e FTDI, ESP32-S3/C3 e rádios EdgeTX.
- Qualquer dispositivo com interface DFU aparece como bootloader, mesmo se o ID não estiver na lista.
- Correções sugeridas: cabo de dados, adaptador OTG, alimentar a placa só pelo USB, segurar BOOT ao conectar ou digitar bl no CLI.
- O doctor roda no app FlySpark para Android; uma demo com dispositivos simulados roda no navegador.
Betaflight
INAV
ArduPilot
PX4- BLHeli_S
Bluejay
AM32
ExpressLRS
EdgeTX
DroneCAN
MAVLink
FlySpark
Recursos
- 01
Tudo no USB, identificado
Cada dispositivo aparece com vendor e product ID, fabricante e nome do produto, família do chip e o que é para o FlySpark.
- 02
Detecção de bootloader
Bootloaders ROM DFU STM32, AT32 e GD32 são reconhecidos pelo ID; qualquer dispositivo com interface DFU aparece como Bootloader (DFU).
- 03
Permissão em um toque
Dispositivos que o FlySpark ainda não pode usar mostram o botão ALLOW ACCESS, que abre o pedido de permissão do Android.
- 04
Ao vivo ao conectar
A lista atualiza quando um dispositivo é conectado ou removido, para ver a placa alternar entre firmware em execução e DFU.
- 05
Não vê seu dispositivo?
Duas checklists, Para configurar e Para flashear, cobrem cabos de dados, OTG, alimentação, botão BOOT e o comando bl.
- 06
Direto à ferramenta certa
Placa em DFU ganha o botão Abrir o flasher de firmware; rádio ou cartão SD ganha Abrir a ferramenta de rádio EdgeTX.
- 07
Rádios e adaptadores também
Reconhece rádios EdgeTX em modos serial, armazenamento e joystick, adaptadores CP210x, CH340, CH9102 e FTDI, ESP32 USB e sondas ST-Link.
- 08
Demo no navegador
Veja como explica uma placa em execução, uma placa no bootloader e um rádio de telemetria, sem nada conectado.
Por que a controladora de voo não é detectada
Comece pelo cabo. Muitos cabos USB vendidos com carregadores só levam energia. Os LEDs da placa acendem, parece conexão, mas o computador ou telefone não vê dispositivo. Se a placa liga e nada aparece na lista, use um cabo que você sabe que transfere dados.
Depois o modo. Uma controladora STM32 tem duas identidades USB. Com Betaflight, INAV ou ArduPilot em execução aparece como porta COM virtual (em placas STM32, vendor 0483, product 5740), que os configuradores abrem como serial. No bootloader ROM aparece como outro dispositivo, STM32 BOOTLOADER (0483:DF11), usado só por flashers. Configurador não conecta em bootloader; flasher não grava com firmware rodando até reiniciar a placa.
Por fim driver e permissão. Cada identidade precisa de driver no Windows; uma placa que configura bem pode falhar ao flashear. No Linux e Android o dispositivo precisa de permissão antes de um app abri-lo.
Instalar o driver STM32 DFU no Windows
Flashers de desktop da família Betaflight falam com o bootloader via driver WinUSB. Se o Windows não tem driver para STM32 BOOTLOADER, ou outro driver reivindicou o dispositivo, o flasher diz que não achou DFU ou trava ao reiniciar para bootloader.
A correção mais rápida que a maioria usa é o ImpulseRC Driver Fixer, programa Windows que acha a controladora conectada e instala os drivers. Se não resolver, coloque a placa em DFU, abra o Zadig, Options › List All Devices, selecione STM32 BOOTLOADER, escolha WinUSB como driver alvo e Replace Driver ou Install Driver. Se o Gerenciador de Dispositivos mostra o bootloader com outro nome, como Guillemot STM DFU Device, outro software instalou driver: desinstale o dispositivo marcando excluir driver, desconecte e instale WinUSB de novo.
Altere o driver só do bootloader. A porta COM virtual para configurar funciona com o driver serial integrado do Windows atual.
macOS, Linux e ChromeOS
macOS não precisa de driver para portas COM virtuais STM32 nem para DFU. Se a placa não aparece, verifique cabo, hub USB e modo.
No Linux o dispositivo aparece, mas usuário comum pode não poder abrir. Portas seriais em geral exigem dialout (saia e entre de novo na sessão); bootloaders DFU precisam de regra udev para vendor 0483 product DF11. A documentação Betaflight traz a regra.
No computador, a versão web do FlySpark abre a serial da controladora pelo navegador (Chrome ou Edge), valendo as mesmas regras de porta serial. Flash não é feito na versão web.
Android: sem driver, mas OTG e permissão
O Android fala com portas COM virtuais STM32, bootloaders DFU e chips USB-serial comuns sem driver. O que impede é OTG e o pedido de permissão. Use adaptador OTG ou cabo USB-C com dados; alguns telefones têm interruptor USB OTG nas configurações. Ao conectar, o Android pergunta se o FlySpark pode usar o dispositivo. Se você dispensou o aviso, o doctor USB e DFU mostra ALLOW ACCESS para pedir de novo.
Alimentação também confunde. Placa alimentada pela bateria de voo e USB ao mesmo tempo pode não reiniciar limpo ao reconectar; a checklist do doctor sugere desconectar a bateria, alimentar só pelo USB e conectar de novo.
Colocar a placa em modo bootloader DFU
Há duas formas. Com firmware rodando: o comando bl do CLI Betaflight (INAV usa dfu) reinicia para o bootloader, e o flasher de firmware do FlySpark envia isso por você. Com placa desligada: segure BOOT (ou faça ponte nos pads BOOT) ao conectar o USB e solte. No Android o doctor USB e DFU confirma: o cartão muda para Bootloader (DFU) com a família do chip, como STM32 ROM DFU.
Placa parada em bootloader não configura. Se o configurador não conecta após flash, desconecte e conecte de novo sem segurar BOOT.
Num relance
Dispositivos que o doctor USB e DFU reconhece
| 0483:DF11 | Bootloader ROM DFU STM32 |
|---|---|
| 2E3C:DF11 | Bootloader ROM DFU AT32 |
| 28E9:0189 | Bootloader ROM DFU GD32 |
| 0483:5740 | Porta COM virtual STM32 (controladora ou rádio em USB Serial) |
| 2E3C:5740 | Porta COM virtual AT32 |
| 10C4:EA60, 1A86:7523, 1A86:55D4 | Adaptadores USB-serial CP210x, CH340 e CH9102 |
| 0403:6001, 0403:6015 | Adaptadores FTDI FT232 e FT230X |
| 303A:1001 | ESP32-S3 / C3 USB (hardware ExpressLRS) |
| 1209:4F54, 0483:5720, 0483:5710 | Rádio EdgeTX / OpenTX, armazenamento SD do rádio, modo joystick |
| 0483:3748, 0483:374B | Sondas ST-Link V2 e V2-1 (não usadas pelo FlySpark) |
| Qualquer outro dispositivo com interface DFU | Mostrado como Bootloader (DFU) |
| Plataforma | App FlySpark Android; demo com dispositivos simulados no navegador e no app |
Comparar
O que cada sistema precisa para a controladora
| Função | Windows | macOS | Linux | Android com FlySpark |
|---|---|---|---|---|
| Porta COM virtual (configurar) | Driver serial integrado no Windows atual | Sem driver | grupo dialout | Sem driver, permitir acesso |
| STM32 BOOTLOADER (flash) | WinUSB via ImpulseRC Driver Fixer ou Zadig | Sem driver | regra udev | Sem driver, permitir acesso |
| Cabo de dados necessário | Sim | Sim | Sim | Simmais OTG |
FlySpark
Como descobrir por que a controladora não é detectada
Troque o cabo
Use cabo que você sabe que leva dados; muitos de carga não levam.
Verifique o modo
Firmware em execução aparece como serial; modo DFU como STM32 BOOTLOADER. Configure em um, flasheie no outro.
Corrija driver ou permissão
No Windows instale WinUSB no bootloader; no Linux adicione permissões; no Android permita acesso ao FlySpark.
Use o doctor USB
No Android, abra o doctor USB e DFU para ver exatamente o que o telefone detecta.
Guia 01
Testar a controladora com o doctor USB e DFU
No app FlySpark no Android.
Abra Ferramentas e escolha USB and DFU doctor.
Conecte a controladora ao telefone com cabo ou adaptador OTG.
Leia o cartão: Flight controller significa firmware em execução; Bootloader (DFU) significa pronta para flash.
Se aparecer ALLOW ACCESS, toque e aceite o pedido do Android.
Se nada aparecer, escolha To configure ou To flash em Not seeing your device? e siga os passos.
Para placa em DFU, toque Open the firmware flasher.
Guia 02
Corrigir STM32 BOOTLOADER com Zadig no Windows
Para flashers de desktop que não acham DFU.
Segure BOOT e conecte a controladora ao computador para iniciar em DFU.
Abra o Gerenciador de Dispositivos e confirme STM32 BOOTLOADER (ou dispositivo desconhecido).
Execute o Zadig, Options › List All Devices e selecione STM32 BOOTLOADER.
Defina o driver alvo como WinUSB e Replace Driver ou Install Driver.
Desconecte, entre em DFU de novo e tente o flash.
Guia 03
Descartar cabo só de carga
Teste rápido antes de mais nada.
Conecte o cabo ao telefone ou PC e a um dispositivo que funciona no USB, como outro telefone, e veja se aparece.
Se não, o cabo é só carga ou está danificado. Use cabo de dados.
Com o app FlySpark no Android e o doctor USB e DFU aberto, conecte a controladora: nenhum cartão com LEDs acesos aponta para cabo ou OTG.
Resolução de problemas
Problemas comuns e correções
Problema
Placa acende mas nenhum dispositivo aparece
Correção
Cabo só de carga ou danificado, ou porta USB frouxa na placa. Teste cabo de dados conhecido e outra porta.
Problema
Betaflight mostra no connection found ou nenhuma porta
Correção
A placa não apresenta serial: verifique cabo, confirme que não está presa em bootloader e no Windows veja STM32 Virtual ComPort no Gerenciador de Dispositivos.
Problema
Flasher diz que não achou DFU no Windows
Correção
Instale WinUSB no STM32 BOOTLOADER com ImpulseRC Driver Fixer ou Zadig.
Problema
STM32 BOOTLOADER vira Guillemot STM DFU Device de novo
Correção
Desinstale o dispositivo Guillemot excluindo o driver e instale WinUSB de novo com Zadig.
Problema
Doctor mostra ALLOW ACCESS
Correção
O FlySpark ainda não tem permissão. Toque ALLOW ACCESS e aceite o pedido do Android.
Problema
Doctor mostra Bootloader (DFU) mas configurador não conecta
Correção
A placa está no bootloader. Flasheie ou reconecte sem segurar BOOT.
Problema
Doctor mostra Game controller
Correção
É rádio em modo joystick. Desconecte e escolha USB Serial (VCP) ou USB Storage no rádio.
Problema
Doctor mostra Unknown device com Hidden na página Connect
Correção
O FlySpark não reconhece o ID. Pode funcionar como serial: ative Show all devices na página Connect e teste.
Problema
Could not list USB devices
Correção
O Android recusou a consulta USB. Desconecte, feche e reabra o doctor e conecte de novo.
Glossário
Glossário de termos
- DFU
- Device Firmware Upgrade, modo USB que o bootloader interno do STM32 usa para receber firmware.
- VCP
- Porta COM virtual: como a controladora com firmware em execução aparece no USB, como porta serial.
- VID:PID
- Par vendor e product ID que todo dispositivo USB reporta, por exemplo 0483:DF11.
- WinUSB
- Driver USB genérico do Windows que permite apps falarem direto com o dispositivo; o que flashers DFU de desktop precisam.
- Zadig
- Utilitário Windows para instalar drivers WinUSB ou libusb em um dispositivo USB escolhido.
- ImpulseRC Driver Fixer
- Utilitário Windows que instala os drivers que uma controladora conectada precisa.
- USB OTG
- On-The-Go: faz o telefone atuar como host USB para conectar a controladora.
- Bootloader ROM
- Código de fábrica no chip STM32. Não pode ser apagado, por isso a placa quase sempre pode ser reflasheada.
FAQ
Perguntas frequentes
O que é o driver STM32 DFU?
O driver que o Windows usa para placa STM32 em modo bootloader. Flashers desktop da família Betaflight precisam de WinUSB no STM32 BOOTLOADER; ImpulseRC Driver Fixer ou Zadig instala.
Preciso de Zadig ou ImpulseRC Driver Fixer no Android?
Não. O Android não precisa de drivers USB. Permita o FlySpark usar o dispositivo quando perguntado.
O FlySpark corrige drivers no Windows?
Não. O doctor USB e DFU do FlySpark roda no Android. No Windows use ImpulseRC Driver Fixer ou Zadig como acima.
Por que a controladora liga mas não conecta?
Na maioria das vezes cabo só de carga. Senão a placa pode estar em bootloader ou falta driver ou permissão.
Por que o Betaflight não conecta depois do flash?
A placa pode ainda estar no bootloader. Desconecte e conecte de novo sem segurar BOOT.
Como coloco a controladora em modo DFU?
Segure BOOT ao conectar USB ou digite bl no CLI Betaflight (dfu no INAV). O flasher de firmware do FlySpark envia o comando por você.
Adaptadores serial como CP2102 ou CH340 precisam de driver?
No Android com FlySpark, não. No computador alguns sistemas precisam do driver do fabricante do chip.
O doctor USB e DFU funciona no iPhone?
Não. Apps iPhone não veem dispositivos USB como controladoras de voo. É ferramenta Android; o navegador mostra uma demo.
O que significa Hidden na página Connect?
O FlySpark não reconhece o ID do dispositivo e a página Connect o oculta. Ative Show all devices lá para testar mesmo assim.
Meu rádio aparece como game controller. Por quê?
Está em modo joystick. Desconecte e escolha USB Serial (VCP) ou USB Storage na tela do rádio.
Uma placa em DFU pode ser brick permanente?
Raramente. O bootloader ROM STM32 não pode ser apagado; segurar BOOT quase sempre devolve ao DFU para reflashear. Placas com proteção de leitura precisam de ferramenta no PC para limpar antes.
Referências
Fontes
A documentação oficial por trás dos factos desta página.
- USB FlashingBetaflight · betaflight.com
- Firmware InstallationBetaflight · betaflight.com
- Zadig - USB driver installation made easyAkeo Consulting · zadig.akeo.ie
- Firmware Flasher TabBetaflight · betaflight.com
- USB host overviewAndroid Developers · developer.android.com





