Correzione driver STM32 DFU e doctor USB per flight controller
Quando un flight controller non viene rilevato, la causa è quasi sempre una di queste quattro: un cavo solo ricarica, la scheda nel modo sbagliato, un driver mancante o errato (come il driver STM32 DFU su Windows) o un permesso che il sistema operativo non ha ancora concesso. Questa pagina passa in rassegna ciascuno, con le correzioni Windows usate dai piloti (ImpulseRC Driver Fixer e Zadig) e cosa controllare su macOS, Linux e Android.
Su Android, l'app FlySpark include un doctor USB e DFU. Elenca ogni dispositivo USB visibile al telefono, indica cos'è (flight controller, scheda in modalità bootloader DFU, adattatore USB-serial, radio) e cosa fare dopo. Android non richiede driver, quindi il doctor si concentra su ciò che va storto: cavi, OTG, permesso e modalità della scheda.
Questo strumento funziona nell'app FlySpark per Android. La demo funziona nel browser.
- Gratis
- Demo senza hardware
In breve
Il driver STM32 DFU consente a un computer di flashare un flight controller in modalità bootloader (ID USB 0483:DF11). Su Windows si corregge con Zadig o ImpulseRC Driver Fixer. Su Android non serve driver; il doctor USB e DFU di FlySpark mostra cosa rileva il telefono e i passi successivi.
Fatti chiave
- Una scheda in modalità DFU appare come STM32 BOOTLOADER (0483:DF11); firmware in esecuzione come porta COM virtuale (0483:5740).
- Su Windows, il flash DFU richiede il driver WinUSB su STM32 BOOTLOADER, installato con Zadig o ImpulseRC Driver Fixer (documentazione Betaflight).
- Su Linux, l'accesso serial richiede il gruppo dialout e il flash DFU una regola udev per 0483:df11 e 2e3c:df11 (documentazione Betaflight).
- Il doctor USB e DFU di FlySpark riconosce 16 ID vendor:product, inclusi bootloader DFU STM32, AT32 e GD32, adattatori CP210x, CH340, CH9102 e FTDI, ESP32-S3/C3 e radio EdgeTX.
- Qualsiasi dispositivo con interfaccia DFU viene mostrato come bootloader, anche se l'ID non è in elenco.
- Correzioni suggerite: cavo dati, adattatore OTG, alimentare la scheda solo da USB, tenere premuto BOOT inserendo il cavo o digitare bl nella CLI.
- Il doctor gira nell'app FlySpark per Android; una demo con dispositivi simulati è nel browser.
Betaflight
INAV
ArduPilot
PX4- BLHeli_S
Bluejay
AM32
ExpressLRS
EdgeTX
DroneCAN
MAVLink
FlySpark
Funzionalità
- 01
Tutto su USB, identificato
Ogni dispositivo è elencato con vendor e product ID, produttore e nome prodotto, famiglia del chip e cosa rappresenta per FlySpark.
- 02
Rilevamento bootloader
I bootloader ROM DFU STM32, AT32 e GD32 sono riconosciuti per ID; qualsiasi dispositivo con interfaccia DFU appare come Bootloader (DFU).
- 03
Permesso con un tocco
I dispositivi che FlySpark non può ancora usare mostrano il pulsante ALLOW ACCESS, che apre la richiesta di permesso di Android.
- 04
In tempo reale al collegamento
L'elenco si aggiorna quando un dispositivo viene collegato o scollegato, così vedi la scheda passare da firmware in esecuzione a DFU.
- 05
Non vedi il dispositivo?
Due checklist, To configure e To flash, coprono cavi dati, OTG, alimentazione, pulsante BOOT e il comando bl.
- 06
Diretto allo strumento giusto
Una scheda in DFU ottiene Open the firmware flasher; una radio o la sua scheda SD ottiene Open the EdgeTX radio tool.
- 07
Anche radio e adattatori
Riconosce radio EdgeTX in modalità serial, storage e joystick, adattatori CP210x, CH340, CH9102 e FTDI, ESP32 USB e sonde ST-Link.
- 08
Demo nel browser
Vedi come spiega una scheda in esecuzione, una scheda nel bootloader e una radio telemetria, senza nulla collegato.
Perché un flight controller non viene rilevato
Parti dal cavo. Molti cavi USB venduti con caricatori trasportano solo alimentazione. I LED della scheda si accendono, sembra una connessione, ma computer o telefono non vedono alcun dispositivo. Se la scheda si accende e nulla compare nell'elenco, prova un cavo che sai trasferire dati.
Poi la modalità. Un flight controller STM32 ha due identità USB. Con Betaflight, INAV o ArduPilot in esecuzione appare come porta COM virtuale (su schede STM32, vendor 0483, product 5740), che i configurator aprono come serial. Nel bootloader ROM appare come dispositivo diverso, STM32 BOOTLOADER (0483:DF11), usato solo dai flasher. Un configurator non si collega in bootloader; un flasher non scrive su una scheda con firmware finché non la riavvia.
Infine driver e permesso. Ogni identità richiede il proprio driver su Windows; una scheda che configura bene può fallire il flash. Su Linux e Android serve permesso prima che un programma apra il dispositivo.
Installare il driver STM32 DFU su Windows
I flasher desktop della famiglia Betaflight parlano con il bootloader tramite il driver WinUSB. Se Windows non ha driver per STM32 BOOTLOADER, o un altro driver ha reclamato il dispositivo, il flasher segnala che non ha trovato DFU o si blocca riavviando in bootloader.
La correzione più rapida che usano molti piloti è ImpulseRC Driver Fixer, un piccolo programma Windows che trova un flight controller collegato e installa i driver necessari. Se non basta, metti la scheda in DFU, apri Zadig, Options › List All Devices, seleziona STM32 BOOTLOADER, scegli WinUSB come driver e Replace Driver o Install Driver. Se Gestione dispositivi mostra il bootloader con altro nome, come Guillemot STM DFU Device, un altro software ha installato un driver: disinstalla il dispositivo spuntando l'eliminazione del driver, scollega e reinstalla WinUSB.
Modifica il driver solo del bootloader. La porta COM virtuale per configurare funziona con il driver serial integrato di Windows attuale.
macOS, Linux e ChromeOS
macOS non richiede driver per porte COM virtuali STM32 né per DFU. Se la scheda non compare, controlla cavo, hub USB e modalità.
Su Linux il dispositivo compare, ma un utente normale potrebbe non poterlo aprire. Le porte serial di solito richiedono il gruppo dialout (esci e rientra nella sessione); i bootloader DFU una regola udev per vendor 0483 product DF11. La documentazione Betaflight indica la regola da aggiungere.
Su computer, la versione web di FlySpark apre la serial del flight controller dal browser (Chrome o Edge), con le stesse regole di porta serial. Il flash non avviene nella versione web.
Android: nessun driver, ma OTG e permesso
Android comunica con porte COM virtuali STM32, bootloader DFU e chip USB-serial comuni senza driver. Ciò che può bloccare sono OTG e la richiesta di permesso. Usa un adattatore OTG o un cavo USB-C con dati; alcuni telefoni hanno un interruttore USB OTG nelle impostazioni. Quando colleghi un dispositivo, Android chiede se FlySpark può usarlo. Se hai chiuso il prompt, il doctor USB e DFU mostra ALLOW ACCESS per richiederlo di nuovo.
L'alimentazione può confondere. Una scheda alimentata dalla batteria di volo e da USB insieme potrebbe non riavviarsi pulita ricollegando il cavo; la checklist del doctor suggerisce di scollegare la batteria, alimentare solo da USB e ricollegare.
Mettere una scheda in modalità bootloader DFU
Ci sono due modi. Da firmware in esecuzione: il comando bl della CLI Betaflight (INAV usa dfu) riavvia in bootloader, e il flasher firmware di FlySpark lo invia per te. A scheda spenta: tieni premuto BOOT (o ponta i pad BOOT su schede senza pulsante) mentre inserisci USB, poi rilascia. Su Android il doctor USB e DFU lo conferma: la scheda passa a Bootloader (DFU) con la famiglia del chip, ad esempio STM32 ROM DFU.
Una scheda lasciata in bootloader non si configura. Se il configurator non si collega dopo un flash, scollega e ricollega senza tenere BOOT.
A colpo d’occhio
Dispositivi riconosciuti dal doctor USB e DFU
| 0483:DF11 | Bootloader ROM DFU STM32 |
|---|---|
| 2E3C:DF11 | Bootloader ROM DFU AT32 |
| 28E9:0189 | Bootloader ROM DFU GD32 |
| 0483:5740 | Porta COM virtuale STM32 (flight controller o radio in USB Serial) |
| 2E3C:5740 | Porta COM virtuale AT32 |
| 10C4:EA60, 1A86:7523, 1A86:55D4 | Adattatori USB-serial CP210x, CH340 e CH9102 |
| 0403:6001, 0403:6015 | Adattatori FTDI FT232 e FT230X |
| 303A:1001 | ESP32-S3 / C3 USB (hardware ExpressLRS) |
| 1209:4F54, 0483:5720, 0483:5710 | Radio EdgeTX / OpenTX, storage SD radio, modalità joystick |
| 0483:3748, 0483:374B | Sonde debug ST-Link V2 e V2-1 (non usate da FlySpark) |
| Qualsiasi altro dispositivo con interfaccia DFU | Mostrato come Bootloader (DFU) |
| Piattaforma | App FlySpark Android; demo con dispositivi simulati nel browser e nell'app |
Confronta
Cosa serve a ogni sistema per un flight controller
| Funzione | Windows | macOS | Linux | Android con FlySpark |
|---|---|---|---|---|
| Porta COM virtuale (configurare) | Driver serial integrato in Windows attuale | Nessun driver | gruppo dialout | Nessun driver, consentire accesso |
| STM32 BOOTLOADER (flash) | WinUSB via ImpulseRC Driver Fixer o Zadig | Nessun driver | regola udev | Nessun driver, consentire accesso |
| Cavo dati necessario | Sì | Sì | Sì | Sìpiù OTG |
FlySpark
Come capire perché un flight controller non viene rilevato
Cambia cavo
Usa un cavo che sai trasportare dati; molti cavi da ricarica no.
Controlla la modalità
Firmware in esecuzione appare come serial; modalità DFU come STM32 BOOTLOADER. Configura in uno, flasha nell'altro.
Correggi driver o permesso
Su Windows installa WinUSB per il bootloader; su Linux aggiungi permessi; su Android consenti l'accesso a FlySpark.
Controlla con il doctor USB
Su Android, apri il doctor USB e DFU per vedere esattamente cosa rileva il telefono.
Guida 01
Verificare un flight controller con il doctor USB e DFU
Nell'app FlySpark su Android.
Apri Tools e scegli USB and DFU doctor.
Collega il flight controller al telefono con cavo o adattatore OTG.
Leggi la scheda: Flight controller significa firmware in esecuzione; Bootloader (DFU) significa pronta al flash.
Se compare ALLOW ACCESS, tocca e accetta il prompt di Android.
Se non compare nulla, scegli To configure o To flash sotto Not seeing your device? e segui i passi.
Per una scheda in DFU, tocca Open the firmware flasher.
Guida 02
Correggere STM32 BOOTLOADER con Zadig su Windows
Per flasher desktop che segnalano assenza di dispositivo DFU.
Tieni BOOT e collega il flight controller al computer per avviare in DFU.
Apri Gestione dispositivi e conferma STM32 BOOTLOADER (o dispositivo sconosciuto).
Avvia Zadig, Options › List All Devices e seleziona STM32 BOOTLOADER.
Imposta il driver di destinazione su WinUSB e Replace Driver o Install Driver.
Scollega, entra di nuovo in DFU e riprova il flash.
Guida 03
Escludere un cavo solo ricarica
Un test rapido prima di tutto.
Collega il cavo a telefono o computer e a un dispositivo che funziona su USB, come un altro telefono, e verifica che compaia.
Se no, il cavo è solo ricarica o danneggiato. Usa un cavo dati.
Con l'app FlySpark su Android e il doctor USB e DFU aperto, collega il flight controller: nessuna scheda con LED accesi indica cavo o OTG.
Risoluzione problemi
Problemi comuni e soluzioni
Problema
La scheda si accende ma nessun dispositivo compare
Soluzione
Cavo solo ricarica o danneggiato, o porta USB allentata sulla scheda. Prova un cavo dati noto e un'altra porta.
Problema
Betaflight mostra no connection found o nessuna porta
Soluzione
La scheda non presenta serial: controlla il cavo, assicurati che non sia bloccata in bootloader e su Windows cerca STM32 Virtual ComPort in Gestione dispositivi.
Problema
Il flasher dice che non ha trovato DFU su Windows
Soluzione
Installa WinUSB su STM32 BOOTLOADER con ImpulseRC Driver Fixer o Zadig.
Problema
STM32 BOOTLOADER torna Guillemot STM DFU Device
Soluzione
Disinstalla il dispositivo Guillemot eliminando il driver, poi reinstalla WinUSB con Zadig.
Problema
Il doctor mostra ALLOW ACCESS
Soluzione
FlySpark non ha ancora permesso. Tocca ALLOW ACCESS e accetta il prompt di Android.
Problema
Il doctor mostra Bootloader (DFU) ma il configurator non si collega
Soluzione
La scheda è nel bootloader. Flashala, oppure scollega e ricollega senza tenere BOOT.
Problema
Il doctor mostra Game controller
Soluzione
È una radio in modalità joystick. Scollega e scegli USB Serial (VCP) o USB Storage sulla radio.
Problema
Il doctor mostra Unknown device con Hidden nella pagina Connect
Soluzione
FlySpark non riconosce l'ID. Può funzionare come serial: attiva Show all devices nella pagina Connect e prova.
Problema
Could not list USB devices
Soluzione
Android ha rifiutato la query USB. Scollega, chiudi e riapri il doctor e ricollega.
Glossario
Glossario dei termini
- DFU
- Device Firmware Upgrade, la modalità USB che il bootloader integrato STM32 usa per ricevere firmware.
- VCP
- Porta COM virtuale: come un flight controller con firmware in esecuzione appare su USB, come porta serial.
- VID:PID
- La coppia vendor e product ID che ogni dispositivo USB riporta, ad esempio 0483:DF11.
- WinUSB
- Driver USB generico Windows che permette ai programmi di parlare direttamente con un dispositivo; ciò che servono i flasher DFU desktop.
- Zadig
- Utilità Windows per installare driver WinUSB o libusb su un dispositivo USB scelto.
- ImpulseRC Driver Fixer
- Utilità Windows che installa i driver necessari a un flight controller collegato.
- USB OTG
- On-The-Go: fa agire il telefono come host USB, così un flight controller può collegarsi.
- Bootloader ROM
- Codice integrato nel chip STM32 in fabbrica. Non può essere cancellato, perciò una scheda quasi sempre può essere riflashata.
FAQ
Domande frequenti
Cos'è il driver STM32 DFU?
Il driver che Windows usa per una scheda STM32 in modalità bootloader. I flasher desktop della famiglia Betaflight richiedono WinUSB sul dispositivo STM32 BOOTLOADER; ImpulseRC Driver Fixer o Zadig lo installa.
Serve Zadig o ImpulseRC Driver Fixer su Android?
No. Android non richiede driver USB. Consenti a FlySpark di usare il dispositivo quando richiesto.
FlySpark può correggere i driver Windows?
No. Il doctor USB e DFU di FlySpark gira su Android. Su Windows usa ImpulseRC Driver Fixer o Zadig come descritto sopra.
Perché il flight controller si accende ma non si collega?
Spesso un cavo solo ricarica. Altrimenti la scheda può essere in bootloader, o manca driver o permesso.
Perché Betaflight non si collega dopo il flash?
La scheda può essere ancora nel bootloader. Scollega e ricollega senza tenere BOOT.
Come metto il flight controller in modalità DFU?
Tieni BOOT mentre inserisci USB, oppure digita bl nella CLI Betaflight (dfu in INAV). Il flasher firmware di FlySpark invia il comando per te.
Adattatori serial come CP2102 o CH340 richiedono driver?
Su Android con FlySpark, no. Su computer alcuni sistemi richiedono il driver del produttore del chip.
Il doctor USB e DFU funziona su iPhone?
No. Le app iPhone non vedono dispositivi USB come flight controller. È uno strumento Android; il browser mostra una demo.
Cosa significa Hidden nella pagina Connect?
FlySpark non riconosce l'ID del dispositivo e la pagina Connect lo nasconde. Attiva Show all devices lì per provare comunque.
La mia radio appare come game controller. Perché?
È in modalità joystick. Scollega e scegli USB Serial (VCP) o USB Storage sullo schermo della radio.
Una scheda in DFU può restare brickata per sempre?
Raramente. Il bootloader ROM STM32 non può essere cancellato; tenere BOOT riporta quasi sempre in DFU per riflashare. Schede con protezione lettura richiedono prima uno strumento su computer per rimuoverla.
Riferimenti
Fonti
La documentazione ufficiale dietro i fatti di questa pagina.
- 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





