Sửa driver STM32 DFU và bác sĩ USB cho flight controller
Khi flight controller không được nhận, gần như luôn do một trong bốn: cáp chỉ sạc, board ở sai mode, driver thiếu hoặc sai như STM32 DFU trên Windows, hoặc quyền hệ điều hành chưa cấp. Trang này đi qua từng mục, với cách sửa Windows (ImpulseRC Driver Fixer và Zadig) và kiểm trên macOS, Linux và Android.
Trên Android, app FlySpark có USB and DFU doctor. Liệt kê mọi thiết bị USB điện thoại thấy, gọi tên (flight controller, board ở DFU bootloader, adapter USB-serial, radio) và bước tiếp theo. Android không cần driver; doctor tập trung cáp, OTG, quyền và mode board.
Công cụ này chạy trong ứng dụng FlySpark trên Android. Bản demo chạy được trên trình duyệt.
- Miễn phí
- Demo không cần phần cứng
Tóm tắt
Driver STM32 DFU cho phép máy tính flash flight controller ở bootloader (USB ID 0483:DF11). Trên Windows sửa bằng Zadig hoặc ImpulseRC Driver Fixer. Android không cần driver; USB and DFU doctor của FlySpark cho biết điện thoại thấy gì và làm gì tiếp.
Sự kiện chính
- Board ở DFU hiện STM32 BOOTLOADER (0483:DF11); firmware chạy hiện cổng COM ảo (0483:5740).
- Trên Windows, flash DFU cần driver WinUSB trên STM32 BOOTLOADER, cài bằng Zadig hoặc ImpulseRC Driver Fixer (tài liệu Betaflight).
- Trên Linux, serial cần nhóm dialout; flash DFU cần udev rule cho 0483:df11 và 2e3c:df11 (Betaflight).
- USB and DFU doctor nhận 16 cặp vendor:product, gồm STM32, AT32, GD32 DFU, CP210x, CH340, CH9102, FTDI, ESP32-S3/C3 và radio EdgeTX.
- Mọi thiết bị báo giao diện DFU hiện là bootloader, kể cả ID không có trong danh sách.
- Gợi ý: cáp data, adapter OTG, chỉ cấp USB, giữ BOOT khi cắm, hoặc gõ bl trong CLI.
- Doctor chạy trên app FlySpark Android; demo thiết bị mô phỏng chạy trên trình duyệt.
Betaflight
INAV
ArduPilot
PX4- BLHeli_S
Bluejay
AM32
ExpressLRS
EdgeTX
DroneCAN
MAVLink
FlySpark
Tính năng
- 01
Mọi thứ trên USB, có tên
Mỗi thiết bị liệt kê VID:PID, hãng, tên sản phẩm, họ chip và vai trò với FlySpark.
- 02
Phát hiện bootloader
ROM DFU STM32, AT32, GD32 nhận theo ID; mọi thiết bị có giao diện DFU hiện Bootloader (DFU).
- 03
Quyền một chạm
Thiết bị chưa được phép hiện ALLOW ACCESS để mở hộp thoại quyền Android.
- 04
Cập nhật khi cắm/rút
Danh sách làm mới khi cắm hoặc rút để xem board chuyển giữa firmware và DFU.
- 05
Không thấy thiết bị?
Hai checklist To configure và To flash: cáp, OTG, nguồn, nút BOOT và lệnh bl.
- 06
Mở đúng công cụ
Board DFU có nút Open the firmware flasher; radio hoặc thẻ SD mở Open the EdgeTX radio tool.
- 07
Radio và adapter
Nhận EdgeTX serial/storage/joystick, CP210x, CH340, CH9102, FTDI, ESP32 USB và ST-Link.
- 08
Demo trình duyệt
Xem cách giải thích board chạy, bootloader và radio telemetry mà không cắm gì.
Vì sao flight controller không nhận
Bắt đầu với cáp. Nhiều cáp USB chỉ mang điện. LED board sáng nhưng máy tính/điện thoại không thấy thiết bị. Nếu board lên nguồn mà không có thiết bị, thử cáp data đã biết.
Tiếp theo mode. STM32 có hai danh tính USB. Chạy Betaflight/INAV/ArduPilot hiện cổng COM ảo (0483:5740). ROM bootloader hiện STM32 BOOTLOADER (0483:DF11) chỉ cho flasher. Configurator không kết nối board ở bootloader; flasher không ghi firmware đang chạy cho đến reboot.
Rồi driver và quyền. Mỗi danh tính cần driver riêng trên Windows. Linux và Android cần quyền trước khi mở thiết bị.
Cài driver STM32 DFU trên Windows
Flasher desktop Betaflight nói chuyện bootloader qua WinUSB. Nếu Windows không có driver cho STM32 BOOTLOADER, flasher báo không thấy DFU hoặc treo khi reboot vào bootloader.
Cách nhanh: ImpulseRC Driver Fixer cài driver cần thiết. Nếu không được, vào DFU, mở Zadig, Options › List All Devices, chọn STM32 BOOTLOADER, WinUSB, Replace/Install Driver. Nếu Device Manager hiện Guillemot STM DFU Device, gỡ driver đó rồi cài WinUSB lại.
Chỉ đổi driver cho bootloader. Cổng COM ảo dùng driver serial có sẵn trên Windows hiện đại.
macOS, Linux và ChromeOS
macOS không cần driver cho COM ảo STM32 hay DFU. Không thấy board: kiểm cáp, hub, mode.
Linux thiết bị có thể hiện nhưng user không mở được. Serial thường cần dialout; DFU cần udev rule 0483:df11. Tài liệu Betaflight có rule.
FlySpark web mở serial qua trình duyệt (Chrome/Edge). Flash không làm trên web.
Android: không driver, nhưng OTG và quyền
Android nói chuyện COM ảo STM32, DFU và chip USB-serial phổ biến không cần driver. Cản trở thường là OTG và hộp quyền. Dùng OTG hoặc cáp USB-C data; một số điện thoại cần bật USB OTG. Doctor hiện ALLOW ACCESS nếu đã từ chối quyền.
Nguồn kép USB + pin bay có thể gây restart không sạch; checklist gợi ý rút pin, chỉ USB, cắm lại.
Đưa board vào DFU bootloader
Hai cách. Từ firmware: lệnh bl trong CLI Betaflight (INAV dùng dfu); flasher FlySpark gửi giúp. Từ tắt: giữ BOOT (hoặc nối pad BOOT) khi cắm USB. Trên Android doctor xác nhận Bootloader (DFU).
Board kẹt bootloader không cấu hình được. Sau flash không kết nối: rút cắm lại không giữ BOOT.
Nhìn nhanh
Thiết bị USB doctor nhận diện
| 0483:DF11 | STM32 ROM DFU bootloader |
|---|---|
| 2E3C:DF11 | AT32 ROM DFU bootloader |
| 28E9:0189 | GD32 ROM DFU bootloader |
| 0483:5740 | STM32 virtual COM port |
| 2E3C:5740 | AT32 virtual COM port |
| 10C4:EA60, 1A86:7523, 1A86:55D4 | CP210x, CH340, CH9102 |
| 0403:6001, 0403:6015 | FTDI FT232, FT230X |
| 303A:1001 | ESP32-S3/C3 USB |
| 1209:4F54, 0483:5720, 0483:5710 | EdgeTX/OpenTX radio modes |
| 0483:3748, 0483:374B | ST-Link V2/V2-1 |
| Thiết bị khác có DFU | Bootloader (DFU) |
| Nền tảng | App FlySpark Android; demo trình duyệt |
So sánh
Mỗi hệ cần gì cho flight controller
| Tính năng | Windows | macOS | Linux | Android FlySpark |
|---|---|---|---|---|
| COM ảo (cấu hình) | Driver serial Windows | Khôngdriver | dialout | Khôngdriver, cho phép |
| STM32 BOOTLOADER (flash) | WinUSB ImpulseRC/Zadig | Khôngdriver | udev | Khôngdriver, cho phép |
| Cần cáp data | Có | Có | Có | Có+ OTG |
FlySpark
Tìm lý do flight controller không nhận
Đổi cáp
Dùng cáp data; nhiều cáp sạc không data.
Kiểm mode
Firmware chạy = serial; DFU = STM32 BOOTLOADER.
Sửa driver/quyền
Windows: WinUSB bootloader; Linux: quyền; Android: cho phép FlySpark.
Dùng USB doctor
Trên Android mở USB and DFU doctor xem điện thoại thấy gì.
Hướng dẫn 01
Kiểm flight controller bằng USB doctor
Trong app FlySpark Android.
Mở Tools, chọn USB and DFU doctor.
Cắm flight controller qua OTG.
Flight controller = firmware; Bootloader (DFU) = sẵn sàng flash.
ALLOW ACCESS nếu có — chấp nhận quyền Android.
Không thấy gì: To configure hoặc To flash.
DFU: Open the firmware flasher.
Hướng dẫn 02
Sửa STM32 BOOTLOADER bằng Zadig trên Windows
Khi flasher desktop báo không có DFU.
Giữ BOOT, cắm flight controller vào máy tính để vào DFU.
Mở Device Manager, xác nhận STM32 BOOTLOADER (hoặc unknown device).
Chạy Zadig, Options › List All Devices, chọn STM32 BOOTLOADER.
Đặt driver đích WinUSB, nhấn Replace Driver hoặc Install Driver.
Rút cáp, vào DFU lại và thử flash.
Hướng dẫn 03
Loại trừ cáp chỉ sạc
Thử nhanh trước hết.
Cắm cáp với thiết bị data đã biết.
Không thấy = cáp chỉ sạc hoặc hỏng.
App Android + doctor: LED sáng không thẻ = cáp hoặc OTG.
Xử lý sự cố
Sự cố thường gặp và cách xử lý
Sự cố
Board sáng nhưng không thấy thiết bị
Cách xử lý
Cáp chỉ sạc/hỏng hoặc cổng USB lỏng. Thử cáp data và cổng khác.
Sự cố
Betaflight no connection found
Cách xử lý
Không có serial: cáp, kẹt bootloader, Device Manager trên Windows.
Sự cố
Flasher không thấy DFU trên Windows
Cách xử lý
Cài WinUSB bằng ImpulseRC hoặc Zadig.
Sự cố
BOOTLOADER thành Guillemot STM DFU
Cách xử lý
Gỡ Guillemot kèm driver, cài WinUSB lại.
Sự cố
Doctor hiện ALLOW ACCESS
Cách xử lý
Chạm ALLOW ACCESS và chấp nhận quyền.
Sự cố
Bootloader (DFU) nhưng configurator không kết nối
Cách xử lý
Đang bootloader — flash hoặc cắm lại không giữ BOOT.
Sự cố
Doctor hiện Game controller
Cách xử lý
Radio joystick mode — chọn USB Serial hoặc Storage trên radio.
Sự cố
Unknown device Hidden
Cách xử lý
Bật Show all devices trên Connect và thử serial.
Sự cố
Could not list USB devices
Cách xử lý
Rút thiết bị, mở lại doctor, cắm lại.
Thuật ngữ
Bảng thuật ngữ
- DFU
- Device Firmware Upgrade — mode USB bootloader STM32 nhận firmware.
- VCP
- Virtual COM port: board chạy firmware hiện như serial trên USB.
- VID:PID
- Cặp vendor/product USB, ví dụ 0483:DF11.
- WinUSB
- Driver USB Windows generic cho flasher DFU desktop.
- Zadig
- Tiện ích Windows cài WinUSB/libusb cho thiết bị chọn.
- ImpulseRC Driver Fixer
- Tiện ích Windows cài driver cho flight controller đang cắm.
- USB OTG
- Điện thoại làm USB host để cắm flight controller.
- ROM bootloader
- Code trong chip STM32; khó xóa nên hầu như luôn flash lại được.
FAQ
Câu hỏi thường gặp
Driver STM32 DFU là gì?
Driver Windows cho board ở bootloader. Flasher Betaflight cần WinUSB trên STM32 BOOTLOADER; cài bằng ImpulseRC hoặc Zadig.
Cần Zadig trên Android?
Không. Android không cần driver USB. Cho phép FlySpark khi được hỏi.
FlySpark sửa driver Windows?
Không. USB doctor chỉ trên Android. Windows dùng ImpulseRC hoặc Zadig.
Board lên nguồn nhưng không kết nối?
Thường cáp chỉ sạc; hoặc bootloader, thiếu driver/quyền.
Betaflight không kết nối sau flash?
Có thể vẫn bootloader — cắm lại không giữ BOOT.
Vào DFU mode?
Giữ BOOT khi cắm USB, hoặc bl trong CLI Betaflight (dfu INAV). Flasher FlySpark gửi lệnh.
Adapter CP2102/CH340 cần driver?
Android FlySpark: không. Máy tính: một số hệ cần driver chip.
USB doctor trên iPhone?
Không. iPhone không thấy USB flight controller. Chỉ Android; trình duyệt có demo.
Hidden trên Connect?
FlySpark không nhận ID — bật Show all devices để thử.
Radio hiện game controller?
Joystick mode — chọn USB Serial (VCP) hoặc Storage trên radio.
Board DFU có brick vĩnh viễn?
Hiếm. ROM bootloader không xóa; giữ BOOT hầu như luôn vào lại DFU. Read protection cần công cụ máy tính trước.
Tham khảo
Nguồn
Tài liệu chính thức đứng sau các sự kiện trên trang này.
- 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





