Logo FlySpark
FlySpark logoFlySparkHardware e collegamenti

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
FlySpark logo

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 logoBetaflight
  • INAV logoINAV
  • ArduPilot logoArduPilot
  • PX4 logoPX4
  • BLHeli_S
  • Bluejay logoBluejay
  • AM32 logoAM32
  • ExpressLRS logoExpressLRS
  • EdgeTX logoEdgeTX
  • DroneCAN logoDroneCAN
  • MAVLink logoMAVLink

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:DF11Bootloader ROM DFU STM32
2E3C:DF11Bootloader ROM DFU AT32
28E9:0189Bootloader ROM DFU GD32
0483:5740Porta COM virtuale STM32 (flight controller o radio in USB Serial)
2E3C:5740Porta COM virtuale AT32
10C4:EA60, 1A86:7523, 1A86:55D4Adattatori USB-serial CP210x, CH340 e CH9102
0403:6001, 0403:6015Adattatori FTDI FT232 e FT230X
303A:1001ESP32-S3 / C3 USB (hardware ExpressLRS)
1209:4F54, 0483:5720, 0483:5710Radio EdgeTX / OpenTX, storage SD radio, modalità joystick
0483:3748, 0483:374BSonde debug ST-Link V2 e V2-1 (non usate da FlySpark)
Qualsiasi altro dispositivo con interfaccia DFUMostrato come Bootloader (DFU)
PiattaformaApp FlySpark Android; demo con dispositivi simulati nel browser e nell'app

Confronta

Cosa serve a ogni sistema per un flight controller

FunzioneWindowsmacOSLinuxAndroid con FlySpark
Porta COM virtuale (configurare)Driver serial integrato in Windows attualeNessun drivergruppo dialoutNessun driver, consentire accesso
STM32 BOOTLOADER (flash)WinUSB via ImpulseRC Driver Fixer o ZadigNessun driverregola udevNessun driver, consentire accesso
Cavo dati necessarioSìSìSìSìpiù OTG

FlySpark

Come capire perché un flight controller non viene rilevato

  1. Cambia cavo

    Usa un cavo che sai trasportare dati; molti cavi da ricarica no.

  2. Controlla la modalità

    Firmware in esecuzione appare come serial; modalità DFU come STM32 BOOTLOADER. Configura in uno, flasha nell'altro.

  3. Correggi driver o permesso

    Su Windows installa WinUSB per il bootloader; su Linux aggiungi permessi; su Android consenti l'accesso a FlySpark.

  4. 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.

  1. Apri Tools e scegli USB and DFU doctor.

  2. Collega il flight controller al telefono con cavo o adattatore OTG.

  3. Leggi la scheda: Flight controller significa firmware in esecuzione; Bootloader (DFU) significa pronta al flash.

  4. Se compare ALLOW ACCESS, tocca e accetta il prompt di Android.

  5. Se non compare nulla, scegli To configure o To flash sotto Not seeing your device? e segui i passi.

  6. 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.

  1. Tieni BOOT e collega il flight controller al computer per avviare in DFU.

  2. Apri Gestione dispositivi e conferma STM32 BOOTLOADER (o dispositivo sconosciuto).

  3. Avvia Zadig, Options › List All Devices e seleziona STM32 BOOTLOADER.

  4. Imposta il driver di destinazione su WinUSB e Replace Driver o Install Driver.

  5. Scollega, entra di nuovo in DFU e riprova il flash.

Guida 03

Escludere un cavo solo ricarica

Un test rapido prima di tutto.

  1. Collega il cavo a telefono o computer e a un dispositivo che funziona su USB, come un altro telefono, e verifica che compaia.

  2. Se no, il cavo è solo ricarica o danneggiato. Usa un cavo dati.

  3. 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.

  1. USB FlashingBetaflight · betaflight.com
  2. Firmware InstallationBetaflight · betaflight.com
  3. Zadig - USB driver installation made easyAkeo Consulting · zadig.akeo.ie
  4. Firmware Flasher TabBetaflight · betaflight.com
  5. USB host overviewAndroid Developers · developer.android.com

Strumenti

Vedi tutti gli strumenti FlySpark

Scarica FlySpark

Questo strumento funziona nell'app FlySpark per Android. La demo funziona nel browser.